1

コマンドがあるとしましょう:

mysql -h localhost -u root -pmypassword dev<file01.sql;

実行する SQL ファイルが多数あります: file02.sql、file03.sql、... file99.sql

このような bash スクリプトを生成して、これらすべての sql ファイルを順番に実行したいと考えています。

bash スクリプトの一部は次のようになります。

mysql -h localhost -u root -pmypassword dev<file01.sql;
mysql -h localhost -u root -pmypassword dev<file02.sql;
mysql -h localhost -u root -pmypassword dev<file03.sql;


mysql -h localhost -u root -pmypassword dev<file99.sql;

これらの行はすべて同じパターンで、ファイル名 (filexx.sql) のみが変更されています。

すべての filexx.sql は同じディレクトリにあります。

私は通常、Excel で bash スクリプトを生成します。これはbashで簡単に実行できることは知っていますが、方法がわかりません。これを生成する方法についてアドバイスいただけますか?

どうもありがとうございました。

4

2 に答える 2

1

これらのステートメントを実行する場合:

for fileid in $(seq 1 99); do
    filename=$(printf "file%02d.sql" $fileid)
    mysql -h localhost -u root -pmypassword dev < $filename
done

ただし、それらを生成するだけの場合:

for fileid in $(seq 1 99); do
    filename=$(printf "file%02d.sql" $fileid)
    echo "mysql -h localhost -u root -pmypassword dev < $filename"
done
于 2013-01-20T04:41:45.837 に答える
0

救助へのBashのブレース拡張:

for file in file{00..99}.sql; do
    mysql -h localhost -u root -pmypassword dev < $file
done
于 2013-01-20T14:08:19.407 に答える