Bash Shell:根据输入变量修剪前导空白
时间:2020-01-09 10:42:23 来源:igfitidea点击:
我的脚本依靠$1来执行某些操作:
file= echo |${file}|
但是, 有时候会有空格,导致成这样:
| file1.txt |
如何从一个输入变量中删除前导空白?
shell中如何删除字符串前后的空格?
shell有没有类似trim功能?
有很多方法可以从输入变量中删除前导空格。
最简单的一种使用read命令,如下所示:
var=" output.txt" echo "|$var|"
输出示例:
| output.txt|
使用read命令消除空白:
read -rd '' var <<< "$var" echo "|$var|"
输出示例:
|output.txt|
extglob
您还可以使用extglob shell选项(Bash v2.2 +)打开或者关闭扩展模式匹配功能。
var=" output.txt" shopt -q -s extglob echo "|${var##+([[:space:]])}|" shopt -q -u extglob
您可以将结果存储到var本身:
var="${var##+([[:space:]])}" echo "|${var}|"
上面的语法也适用于ksh shell。
sed命令
您还可以使用sed:
var=" output.txt" var=$(sed -e 's/^[[:space:]]*//' <<<"$var") echo "|${var}|"