欢迎来到代码驿站!

Shell

当前位置:首页 > 脚本语言 > Shell

shell字符串截取报错:Bad substitution的解决

时间:2021-03-22 09:08:11|栏目:Shell|点击:

问题重现:

当前系统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; }')

上一篇:a10 config backup for aXAPI

栏    目:Shell

下一篇:scp 将数据从一台linux服务器复制到另一台linux服务器

本文标题:shell字符串截取报错:Bad substitution的解决

本文地址:http://www.codeinn.net/misctech/85545.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有