問題重現(xiàn):
當(dāng)前系統(tǒng)Ubuntu16
shell進(jìn)行字符串截取
運(yùn)行 ${GIT_COMMIT:0:6}報(bào)錯(cuò):
/tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution
原因:兩種shell語言解釋器 bash和dash
查看當(dāng)前/bin/sh 指向哪種解釋器:
ls /bin/sh -al
lrwxrwxrwx 1 root root 4 Mar 26 2018 /bin/sh -> dash
修改bin/sh指向?yàn)閎ash:
sudo ln -fs /bin/bash /bin/sh
或者運(yùn)行 sudo dpkg-reconfigure dash
后選擇NO
或者修改表達(dá)式 ${GIT_COMMIT:0:6}為:
$(echo $GIT_COMMIT | awk '{ string=substr($0,0,6); print string; }')
到此這篇關(guān)于shell字符串截取報(bào)錯(cuò):Bad substitution的解決的文章就介紹到這了,更多相關(guān)shell字符串截取報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Linux Shell 截取字符串的方法示例
- shell編程中的字符串截取方法小結(jié)
- Powershell截取字符串并添加省略號(hào)的例子
- Shell腳本8種字符串截取方法總結(jié)
- Shell字符串截取的詳細(xì)方法