0

ファイルからmysqlデータベースを入力しようとしています。しかし、db filenameは変数から来ますfilename= /file/path/name.sql。しかし、<それを使用して入力すると、エラーが表示されambiguous redirectます。

私の完全なスクリプトは次のとおりです。

filename= /var/backup/mydatabase.sql
echo $filename
mysql -uxxxx -pxxxx -hxxxx databasename < $filename

そして、出力は次のとおりです。

/var/backup/mydatabase.sql

./myscript.sh: line 3: $filename: ambiguous redirect

次の点に注意してください。

  • filename何らかの理由で変数が必要であると想定してください
  • 私はrootユーザーです

だからここでの私の質問は:

  • shell variablesファイル入力の目的でどのように使用しますか?
4

1 に答える 1

3
filename= /var/backup/mydatabase.sql
         ^

=変数を定義するとき、周囲にスペースを入れることはできません。
後のスペースを削除してください=


./myscript.sh: line 3: $filename: ambiguous redirect

このエラーメッセージは、$filename複数の単語に拡張される可能性があることを示しています。
二重引用符で囲んでください"$filename"


スクリプトファイルの行末に非表示のctrl-charが含まれていないことを確認してください。
コマンドxxd myscript.shを使用して確認します。

于 2012-11-21T02:34:48.183 に答える