問題重現:
當前系統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字符串截取的詳細方法