将斜杠替换为bash中的空白

时间:2018-11-15 16:05:36

标签: bash macos resx slash

假设我有以下结果:

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"

应该如何进行更改才能将“测试”作为字符串获取到变量中?

2 个答案:

答案 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,这是不正确的。