从内部脚本调用bash代码时出现替换错误

时间:2016-07-08 03:25:57

标签: bash unix

我有一段简单的代码,当我自己运行它时,它可以正常工作,尽管从文件中调用它时它不起作用。

以下代码:

for files in *; do echo ${files::10}; done 

当我尝试将其放入文件(例如MyScript.sh)时,我运行以下命令:

sh MyScript.sh

我收到以下错误“MyScript.sh:2:MyScript.sh:Bad substitution”

为什么会这样?如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

您应该使用bash而不是sh来调用它,因为您正在使用bash语法

bash MyScript.sh

或添加一个shebang(作为脚本的第一行)

#! /bin/bash

并设置执行权限

chmod +x MyScript.sh

然后你可以调用它

./MyScript.sh