将 bash 中的斜杠替换为空
Replace slash in to empty in bash
假设我有这样的结果:
CMD_VAL = 'test/'
echo $CMD_VAL
=> test/
echo "$CMD_VAL"|sed 's#/##g'
=>test
但是,
PRO_VAL = "$CMD_VAL"|sed 's#/##g'
echo $PRO_VAL
这个returns
=> "test/ is a directory"
需要如何更改才能将 "test" 作为字符串放入变量?
PRO_VAL=$(echo $CMD_VAL|sed 's#/##g')
你需要先回显,"$CMD_VAL"|sed 's#/##g" 将是 运行 $CMD_VAL 并通过管道传递给 sed,这是不正确的.
无需生成外部进程。 c.f。 this cheat-sheet 获取有关使用解释器的内置字符串处理工具等内容的指南。
$: CMD_VAL='test/' # no spaces...
$: CMD_VAL=${CMD_VAL%/} # strip the training slash
$: echo "$CMD_VAL"
test
假设我有这样的结果:
CMD_VAL = 'test/'
echo $CMD_VAL
=> test/
echo "$CMD_VAL"|sed 's#/##g'
=>test
但是,
PRO_VAL = "$CMD_VAL"|sed 's#/##g'
echo $PRO_VAL
这个returns
=> "test/ is a directory"
需要如何更改才能将 "test" 作为字符串放入变量?
PRO_VAL=$(echo $CMD_VAL|sed 's#/##g')
你需要先回显,"$CMD_VAL"|sed 's#/##g" 将是 运行 $CMD_VAL 并通过管道传递给 sed,这是不正确的.
无需生成外部进程。 c.f。 this cheat-sheet 获取有关使用解释器的内置字符串处理工具等内容的指南。
$: CMD_VAL='test/' # no spaces...
$: CMD_VAL=${CMD_VAL%/} # strip the training slash
$: echo "$CMD_VAL"
test