有问题的脚本:
1 #!/bin/bash 2 3 skl="test" 4 # get length 5 leng=$(expr length $skl) 6 # get desired length 7 leng=$(expr 22 - $leng) 8 9 # get desired string 10 str=$(printf "%${leng}s" "-") 11 12 # replace empty spaces 13 str=$(echo "${str// /-}") 14 15 # output 16 echo "$str obd: $skl $str" 17
但它输出:
name.sh: 13: Syntax error: Bad substitution
请帮忙,谢谢,我将非常感激:)
以下行:
str=$(echo "${str// /-}")
Syntax error: Bad substitution
因为您没有使用执行脚本而导致bash
.您正在使用执行脚本sh
或dash
导致错误的脚本.
编辑:为了修复您的脚本以使其能够使用sh
,dash
除此之外bash
,您可以替换以下行:
# get desired string str=$(printf "%${leng}s" "-") # replace empty spaces str=$(echo "${str// /-}")
同
str=$(printf '=%.0s' $(seq $leng) | tr '=' '-')