getEnvVal()
{
tNm=`grep $1 $2`
tNm=${tNm//$1}
tNm=${tNm%% }
tNm=${tNm## }
echo $tNm
}
答案 0 :(得分:2)
tNm=`grep $1 $2`
保存 grep
的输出到变量tNm=${tNm//$1}
从变量中移除 $1
的值的任何内容tNm=${tNm%% }
从变量末尾删除单个空格tNm=${tNm## }
从变量echo $tNm
打印变量值我不建议你使用这个脚本,因为它有很多问题:
`foo`
构造。您应该使用$(foo)
。从grep
输出结尾处删除换行符。要获得grep
的文字输出,您必须使用以下内容:
tNm=$(grep "$1" "$2"; printf x)
tNm=${tNm%x}
$1
包含任何在Bash中具有特殊含义的字符,${tNm//$1}
可能会出现意外行为(感谢@chepner)。作者可能打算从行的开头和结尾删除多个空格:
tNm=${tNm%% *}
tNm=${tNm## *}
echo
会出现意外行为。请改用printf
。