我正在尝试从文件中输入 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
用于文件输入目的?
最佳答案
filename= /var/backup/mydatabase.sql
^
定义变量时,=
两边不允许有空格。
请去掉=
后面的空格。
./myscript.sh: line 3: $filename: ambiguous redirect
此错误消息告诉您 $filename
可能会扩展为多个单词。
请双引号 "$filename"
。
确保脚本文件在行尾不包含任何不可见的 ctrl-chars。
使用命令xxd myscript.sh
检查。
关于Linux Shell "Variable"用于文件输入 "<",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13485494/