shell字符串截取时出现报错Bad substitution的解决方法

发布时间:2020-10-27 16:23:05 作者:Leah
来源:亿速云 阅读:1110

这篇文章运用简单易懂的例子给大家介绍shell字符串截取时出现报错Bad substitution的解决方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

问题重现:

当前系统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的解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. MySQL数据库创建表时报错的解决方法
  2. mysql出现err1055错误解决方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

shell bs he

上一篇:Docker Compose在不同环境如何安装

下一篇:如何在SpringBoot服务上实现接口限流

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》