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

 更新时间:2020-11-19 04:08:37   作者:佚名   我要评论(0)

问题重现:
当前系统Ubuntu16
shell进行字符串截取
运行 ${GIT_COMMIT:0:6}报错:



/tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.s

问题重现:

当前系统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字符串截取的详细方法

相关文章

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

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

    问题重现: 当前系统Ubuntu16 shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.s
    2020-11-19
  • shell 判断字符串是否存在数组中的实现示例

    shell 判断字符串是否存在数组中的实现示例

    语法格式: [[ "${array[@]}" =~ "字符串" ]] 示例: #!/bin/sh ##数组 array=( address base cart company store ) # $1 如果存在,输出 $1 exists,$1 如
    2020-11-19
  • 详解shell 函数定义与调用

    详解shell 函数定义与调用

    一、Shell函数定义格式 shell函数定义格式,各部分说明如下: [ function ]等中括号括起来部分----表示可选(即可有可无) your_function_name部分----为函数名 you
    2020-11-19
  • shell中set指令的用法详解

    shell中set指令的用法详解

    语法 set [-可选参数] [-o 选项] 功能说明 set 指令可根据不同的需求来设置当前所使用 shell 的执行方式,同时也可以用来设置或显示 shell 变量的值。当指定某
    2020-11-19
  • linux自动化交互脚本expect详解

    linux自动化交互脚本expect详解

    一、介绍 expect脚本是Tcl脚本语言的拓展。用来实现自动的交互式任务,无需人为干预。在实际开发中,运行shell脚本有时候会输入linux密码或者是mysql密码等,而expe
    2020-11-19
  • Linux 中shell脚本设置开头固定格式的实现方法

    Linux 中shell脚本设置开头固定格式的实现方法

    Linux 之shell脚本设置开头固定格式 每次进入shell都要设置开头,很麻烦,现修改vim配置文件即可。 [root@node01 ~]vim .vimrc 将下列内容复制进文件 set
    2020-11-19
  • 详解shell脚本的编写规范

    详解shell脚本的编写规范

    编写shell脚本的一些规范 解释器 shell脚本一般选择bash作为解释器,脚本开头应为 #!/bin/bash 或 #!/bin/sh 添加脚本版本和注释功能 在脚本的开头加注释,说明脚
    2020-11-19
  • shell脚本实现磁盘监控系统

    shell脚本实现磁盘监控系统

    利用shell脚本实现每隔60秒磁盘内存数据监控 #!/bin/bash #Author:GaoHongYu #QQ:1061767621 #Time:2019-12-24 18:43:22 #Name:ncjk.sh #Version:V1.0 clear xtip
    2020-11-19
  • Shell用sed命令删除特定行的方法

    Shell用sed命令删除特定行的方法

    sed命令作为一个强大的shell命令,可以快速删除任意特定的行列,配合awk命令可以轻松地操作批量处理文件,下面就来看看吧! sed命令常用到的两个选项: -i : 直接
    2020-11-19
  • shell脚本快速创建、格式化、挂载新添加的磁盘实现方法详解

    shell脚本快速创建、格式化、挂载新添加的磁盘实现方法详解

    一、通过管理员选择创建、格式化、挂载新添加的磁盘脚本 #! /bin/bash echo "==============================" PS3="chose which disk you want to create:" sele
    2020-11-19

最新评论