Linux Shell "Variable"用于文件输入 "<"

标签 linux shell variables redirect input

我正在尝试从文件中输入 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/

相关文章:

linux - 可以给出用于下载的当前目录大小列表的 shell 命令是什么?

linux - 使用 telegram-cli 时将大括号 "{}"插入到消息文本中

shell - 用递增的值替换字符串

linux - shell 脚本 - 验证 sha256sum

Java 常量变量,命名约定

linux - 如何在不通过 telnet 使用管道的情况下串行传递命令

linux - 在保留属性/所有权的同时增量备份 linux 中的文件夹

database - 写入文本文件或通过键/值数据库的速度

javascript - Angular 无意绑定(bind)/对象镜像

c++ - 如何为变量分配一个新对象