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某种原因需要该变量
  • 我是根用户

所以我的问题是:

  • 如何shell variables用于文件输入目的?
4

1 回答 1

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

=定义变量时,周围不允许有空格。
请去掉后面的空格=


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

此错误消息告诉您$filename可能会扩展到多个单词。
请双引号"$filename"


确保脚本文件在行尾不包含任何不可见的 ctrl 字符。
使用命令xxd myscript.sh检查。

于 2012-11-21T02:34:48.183 回答