当我运行以下脚本时:
#!/bin/bash
test="abcdr"
test2=${test:0:2}
echo $test2
我收到错误:script: 3: script: Bad substitution
然后我在终端输入完全相同的命令,它没有任何错误
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:0)
您正在使用sh
运行脚本,这与bash
不同。它不支持这种替代。
使用
bash script
或确保它是可执行的(chmod u+x /path/to/script
)并直接运行
/path/to/script
如果您当前的目录恰好是/path/to
,则只需输入
./script
答案 1 :(得分:0)
@ user3597432我没有在该脚本内容中看到任何问题,主要是问题可能与bash版本或脚本的执行方式有关。如果您无法通过bash终端解析,可以尝试使用korn shell,这样更方便。只需将ksh bin和脚本文件引用到.ksh即可。 ksh提供了使用ksh -x script.ksh执行调试选项。