3

MySQLコマンドをbash(Ubuntu)で作成しました:

[XXXX:~]$ mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS `f-XXXX`;"

このコマンドでバッククォートが必要です。データベース名が可変であるためです。

そのコマンドは機能せず、送信されf-XXXX command not found ます。私の問題はバッククォートに関連していると思います。どのようにできるのか?

4

2 に答える 2

1

ここでは、変数の置換にバッククォートを使用する必要はありません。

[XXXX:~]$ mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS ${DB};""
于 2013-02-26T08:56:04.150 に答える
0

Bashはバックティックの内容を取得し、それをコマンドとして使用して別のbashプロセスを実行します。

これはバッククォートです。バッククォートは引用符ではなく、非常に特別な意味があります。バックティックの間に入力するものはすべて、メインコマンドの前にシェルによって評価(実行)され(例のchownのように)、その実行の出力は、その場所でその出力を入力するのと同じように、そのコマンドによって使用されます。コマンドライン。

代わりに$(コマンド)を使用してください。

mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS $('f-XXXX');"
于 2013-02-26T08:49:36.453 に答える