ファイルを変更せずにcatコマンドの出力に値を追加するにはどうすればよいですか?

ファイルを変更せずにcatコマンドの出力に値を追加するにはどうすればよいですか?

職場には、mysqlデータベースサーバーにSQLスクリプトを適用するために使用する必要があるカスタムスクリプトがあり、自由に変更することはできません。カスタムスクリプトのコマンドラインオプションは非常に制限されています。たとえば、デフォルトのデータベース指定は許可されません。つまり、use database正しいディレクトリに切り替える必要があります。

create tableそれでは、データベースにスクリプトを適用したいと思います。ただし、スクリプトを正常に実行するには、use database最初の行にステートメントが必要です。create table

これがうまくいったら、ここに質問を投稿する必要はありません。

echo 'use database' | cat create_tables.sql | work_send_command_to_db.sh

ファイルを変更せずにローカルで目標を達成できることを本当に望んでいます。これは、上記のコマンド例でcreate_tables.sqlgitがすでにチェックインされているためです。create_tables.sqlスクリプトを適用するたびにリポジトリをリセットしたくありません。

ベストアンサー1

echoの出力ではなく、最終スクリプトにグループに2つのコマンドの出力をパイプしようとしていますcat。したがって、{ ...; }次のコマンドを使用またはグループ化します(...)

{ echo 'use database'; cat create_tables.sql; } | work_send_command_to_db.sh

または:

( echo 'use database'; cat create_tables.sql ) | work_send_command_to_db.sh

おすすめ記事