次のテスト スクリプトの出力について説明していただけますか。
# prepare test data
echo "any content" > myfile
# set bash to inform me about the commands used
set -x
cat < myfile
出力:
+cat
any content
つまり、+ で始まる行に「< myfile」ビットが表示されないのはなぜですか?
bashにそれを強制する方法。次のように、スクリプトの動作をユーザーに通知する必要があります。
mysql -uroot < the_new_file_with_a_telling_name.sql
そして私はできません。
編集: 追加のコンテキスト: 変数を使用します。元のコード:
SQL_FILE=`ls -t $BACKUP_DIR/default_db* | head -n 1` # get latest db
mysql -uroot mydatabase < ${SQL_FILE}
-v
変数は展開されずcat file.sql | mysql
、次の 2 行が生成されます。
+mysql
+cat file.sql
そのため、トリックも行いません。