3
#!/bin/sh
dblist=mail ftp www
for arg in $dblist; do
mysqldump -u dumper --password=$dbpass --socket $socket --database $dblist >> /tmp/backup/$dblist.sql
done

変数 dblist からのすべてのデータベースは、新しい mysqldump 行を書き込み、データベース名を対応するフィールドに追加する必要があります。これはどのように達成できますか?

4

3 に答える 3

2

次のように、変数arg(つまり、データベース名) を使用して、データベースごとに個別の sql ダンプ ファイルを作成します。

#!/bin/sh
declare -a dblist=(mail ftp www)
for arg in "${dblist[@]}"
do
   mysqldump -u dumper --password=$dbpass --socket $socket --database $arg >> /tmp/backup/$arg.sql
done
于 2012-10-26T13:08:41.347 に答える
1

dblist配列として宣言しないのはなぜですか?

dblist=(mail ftp www)
for arg in ${dblist}; do
   mysqldump .... $arg

$arg呼び出しで変数を使用します。

ここにbash 配列のチュートリアルがあります。

于 2012-10-26T13:08:15.967 に答える
0
dblist=(mail ftp)

for arg in ${dblist[*]}
do
   mysqldump -u $dbuser --password=$dbpass --socket $socket --database $arg >> /tmp/backup/$arg.sql
done

動作します、ありがとう!

于 2012-10-26T13:36:46.290 に答える