linux执行脚本报错bad,执行shell脚本文件提示: bad substitution
shell脚本文件执行mysql导入时提示错误${source /tiger/shell/workhour.sql}: bad substitution首先,我们要理解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)"
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)