我有一段简单的代码,当我自己运行它时,它可以正常工作,尽管从文件中调用它时它不起作用。
以下代码:
for files in *; do echo ${files::10}; done
当我尝试将其放入文件(例如MyScript.sh)时,我运行以下命令:
sh MyScript.sh
我收到以下错误“MyScript.sh:2:MyScript.sh:Bad substitution”
为什么会这样?如何解决这个问题?
答案 0 :(得分:5)
您应该使用bash
而不是sh
来调用它,因为您正在使用bash语法
bash MyScript.sh
或添加一个shebang(作为脚本的第一行)
#! /bin/bash
并设置执行权限
chmod +x MyScript.sh
然后你可以调用它
./MyScript.sh