最新消息: 新版网站上线了!!!

执行shell脚本文件提示: bad substitution

shell脚本文件执行mysql导入时提示错误${source /tiger/shell/workhour.sql}: bad substitution

首先,我们要理解bad substitution的字面意思,它的字面意思是“替换错误”的意思。

这种错误的原因呢,通常是我们编写脚本时“{}”和“()”错误使用导致的。

比如应该用“()”时,我们用成了“{}”;应该用“()”时,用成了“{}”。

那么如何区分什么时候用什么类型的括号呢?

${}中,大括号里放的是变量;

$(commamd)里是执行command(即我们的命令或者一些运算),然后用它的输出代替$()


脚本内容:

dbip="192.168.43.231"

dbuser="root"

dbpwd="123456"

dbport="3306"

db="workhour"

mysql -h${dbip} -u${dbuser} -p${dbpwd} -P${dbport} -D${db} -s -e "${source /tiger/shell/workhour.sql}"

错误内容:${source /tiger/shell/workhour.sql}: bad substitution

因为source是导入mysql的命令所以这里要使用()而不是{}

修改如下:

dbip="192.168.43.231"

dbuser="root"

dbpwd="123456"

dbport="3306"

db="workhour"

mysql -h${dbip} -u${dbuser} -p${dbpwd} -P${dbport} -D${db} -s -e "$(source /tiger/shell/workhour.sql)"


转载请注明:谷谷点程序 » 执行shell脚本文件提示: bad substitution