0

私はdbをダンプするこのスクリプトを持っています:

cat /usr/bin/dbbkup
#!/bin/bash
mysqldump -uroot -proot db > db_$(date +%d%H%M%S).sql

私はそのように実行します:

dbbkup && ls -atlr

しかし、dbダンプのプレフィックスとなる引数をこのスクリプトに渡すにはどうすればよいですか?例えば

dbbkup -arg "changed name of field" && ls -atlr

次に、スクリプトを次のように変更します。

#!/bin/bash
mysqldump -uroot -proot db > db_$(arg)_$(date +%d%H%M%S).sql

ありがとう=)

4

2 に答える 2

0

bashスクリプトに渡される最初のパラメーターは$1になります。

#!/bin/bash
mysqldump -uroot -proot db > $1db_$(date +%d%H%M%S).sql

このように呼んでください:

dbbkup prefix
于 2012-09-19T09:09:59.003 に答える
0

Bashスクリプトは、パラメーターを順番に参照します。例:

dbbkup "changed name of field"

$1スクリプトの変数になります。

したがって、例を続けると、日付に基づいたカスタムファイル名と特定のプレフィックスを使用してdbダンプを作成するには、コマンドは次のようになります。

./dbbkup.sh prefix

スクリプトの内容は次のようになります。

#!/bin/bash
mysqldump -uroot -proot db > db_$1_$(date +%Y%m%d%H%M%S).sql

これにより、。というファイルが生成されますdb_prefix_20120919104317.sql。詳細情報があるので、日付形式を変更しました。ディレクトリリストで、名前で並べ替えたり、時間で並べ替えたりできるようになりました。

また、bashパラメーターの使用方法の例としてこれが必要だと思います。渡すパラメーターは、作成される出力には関係なく、ファイル名だけに関係するためです。この場合、ファイルの名前をハードコーディングしませんか?同じ(更新されているものの)データを持つ複数の名前を持つファイルのユースケースは表示されません。

于 2012-09-19T09:48:31.790 に答える