Bashで出力ラインを配列として使用する

Bashで出力ラインを配列として使用する

共有Webホストにmysqlデータベースがあります。サイズが大きすぎると、圧縮を含む単一のダンププロセスが終了します。各テーブルを個別にダンプして圧縮したいです。このコマンドを使用してください

mysqldump -uuser -ppass database < show_tables.sql

次のように、すべてのテーブルの名前を返すことができます。

table1
table2
etc
...

各行がこの構文を使用してコマンドに入力されるように、bashスクリプトにどのように入力しますか?

mysqldump -uuser -ppass database table_name_goes_here > and_here.sql

編集する申し訳ありません。元の形式に間違いがありました。クエリの出力は、show tablesスペースで区切られたテーブル名を含む1行ではありません。実際には、現在の形式と同様に、1行に1つのテーブル名です。混乱させて申し訳ありません。

ベストアンサー1

mysqldump -uuser -ppass database < show_tables.sql |
xargs -I TableName sh -c 'mysqldump -uuser -ppass database TableName > TableName.sql'

おすすめ記事