脚本执行到截取字符串时,报错提示:Bad substitution。 原因: 两种shell语言解释器 bash和dash,这种情况是指向了dash解释器导致。 解决方法: 1.查看shell指向:ls -l /bin/sh 2.修改脚本指向bash方法1:sudo dpkg-reconfigure dash然后选择no 修改脚本指向bash方法2:sudo rm -rf /bin/shsudo ln -s /bin/bash /b...
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字符串截取...
当前系统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 -> ...
shell执行${var:m:n}报错Bad substitution解决办法 Ubuntu系统下,执行字符串截取脚本时,总是报错:Bad substitution,脚本非常简单如下: #!/bin/shstr1="hello world!"echo${str1:1:4} 执行后报错: .str1.sh:4:./str1.sh:Bad substituion 解决方法: 将解释器调整为bash #!/bin/bash $sudo ./str1.sh ...
Ubuntu shell 截取字符串时:bad substitution Code: #!/bin/bash b=`lsof -i:1080 | grep LISTEN` # echo ${b} if [ -z "${b}" ]; then echo "b is empty" else echo ${b:1:18} fi sh执行脚本 h2o2@ubt:~/文档/01-shell$ sh01-命令输出.sh01-命令输出.sh:10:01-命令输出.sh:Badsub...
shell bad substitution 文心快码BaiduComate 在Shell脚本编程中,遇到“bad substitution”错误通常意味着脚本试图执行一个不被支持的替换操作。这个错误常见于Bash脚本,但也可能出现在其他Shell环境中,尤其是当脚本在不支持某些高级特性(如数组或参数扩展)的旧版或非Bash Shell中运行时。以下是针对您问题的详细回答: 1....
Shell脚本运行报错Bad substitution解决办法 环境Ubuntu18.4.02 脚本运行报错 # sh test.shtest.sh:2: test.sh: Bad substitution 1. 2. 原因 从ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。
首先,我们要理解bad substitution的字面意思,它的字面意思是“替换错误”的意思。 这种错误的原因呢,通常是我们编写脚本时“{}”和“()”错误使用导致的。 比如应该用“()”时,我们用成了“{}”;应该用“()”时,用成了“{}”。 那么如何区分什么时候用什么类型的括号呢?
shell的问题,一般使用bash 所以第一行代码改成#!/bin/bash ksh也行
把开头的解释器改成 /bin/bash dash和bash还是有不一样的,http://princessleia.com/plug/2008-JP_...