问题重现:
当前系统Ubuntu16
shell进行字符串截取
运行 ${GIT_COMMIT:0:6}报错:
/tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution
原因:两种shell语言解释器 bash和dash
查看当前/bin/sh 指向哪种解释器:
ls /bin/sh -al
lrwxrwxrwx 1 root root 4 Mar 26 2018 /bin/sh -> dash
修改bin/sh指向为bash:
sudo ln -fs /bin/bash /bin/sh
或者运行 sudo dpkg-reconfigure dash
后选择NO
或者修改表达式 ${GIT_COMMIT:0:6}为:
$(echo $GIT_COMMIT | awk '{ string=substr($0,0,6); print string; }')
到此这篇关于shell字符串截取报错:Bad substitution的解决的文章就介绍到这了,更多相关shell字符串截取报错内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
您可能感兴趣的文章:Linux Shell 截取字符串的方法示例shell编程中的字符串截取方法小结Powershell截取字符串并添加省略号的例子Shell脚本8种字符串截取方法总结Shell字符串截取的详细方法