假设我有以下结果:
CMD_VAL = 'test/'
echo $CMD_VAL
=> test/
echo "$CMD_VAL"|sed 's#/##g'
=>test
但是
PRO_VAL = "$CMD_VAL"|sed 's#/##g'
echo $PRO_VAL
这将返回
=> "test/ is a directory"
应该如何进行更改才能将“测试”作为字符串获取到变量中?
答案 0 :(得分:4)
无需生成外部进程。 c.f. this cheat-sheet,以获得有关使用解释器的内置字符串处理工具的指南。
$: CMD_VAL='test/' # no spaces...
$: CMD_VAL=${CMD_VAL%/} # strip the training slash
$: echo "$CMD_VAL"
test
答案 1 :(得分:0)
PRO_VAL=$(echo $CMD_VAL|sed 's#/##g')
您需要先回显,“ $ CMD_VAL” | sed's#/ ## g'将运行$ CMD_VAL并通过管道进行sed,这是不正确的。