Unix脚本 - 字符串的第一个字母

时间:2014-05-09 13:21:17

标签: bash unix terminal

当我运行以下脚本时:

#!/bin/bash 
test="abcdr"
test2=${test:0:2}
echo $test2

我收到错误:script: 3: script: Bad substitution

然后我在终端输入完全相同的命令,它没有任何错误

为什么会发生这种情况,我该如何解决?

2 个答案:

答案 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执行调试选项。