我确信目录中没有名为mysql.sql的文件
操作系统信息
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
我有一个 shell 脚本。其中一行返回非零代码
yum install -y mysql* 1>/dev/null 2>/dev/null
当我在终端中运行此行时,一切正常,并且返回代码( echo $?)为零。
但是在脚本中,它将返回 1 并且使用 -x 选项,我可以看到 bash 将行更改为
yum install -y mysql.sql
那么为什么 mysql* 改为 mysql.sql?
请您参考如下方法:
脚本当前目录下有一个名为mysql.sql的文件。
引用参数以避免 bash 扩展它,以便 yum 可以。
yum install -y "mysql*" 1>/dev/null 2>/dev/null
一般来说,如果您不希望将参数扩展为全局变量,那么您总是希望用 *
引用参数。默认情况下,如果它们不匹配任何内容,Bash 会按字面意思传递它们,但您通常不能保证这一点,因此最好只引用它。