将 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