Red Hat Enterprise Linux 7 高薪入门pdf下载
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