Bash脚本将管道sed的输出保存为变量
为什么这样不行Bash脚本将管道sed的输出保存为变量,bash,Bash,为什么这样不行 newAns=$(${answer} | sed 's/\[//') 我正试图编辑$answer变量以去掉“[”并将其保存到新变量中 当前给我一个错误,说“[foo]:找不到命令” $answer=[foo] echo$newAns=foo]$(…)运行命令 ${answer}|sed是一个管道,它运行命令${answer},并将其输出导入sed sed是有效的命令,但您的$answer不是(它只是一个字符串) 最简单的解决方案是根本不使用管道或外部命令: newAns="$
newAns=$(${answer} | sed 's/\[//')
我正试图编辑$answer变量以去掉“[”并将其保存到新变量中
当前给我一个错误,说“[foo]:找不到命令”
$answer=[foo]
echo$newAns=foo]$(…)
运行命令
${answer}|sed
是一个管道,它运行命令${answer}
,并将其输出导入sed
sed
是有效的命令,但您的$answer
不是(它只是一个字符串)
最简单的解决方案是根本不使用管道或外部命令:
newAns="${answer#\[}"
将删除前导的[
$(…)
运行命令
${answer}|sed
是一个管道,它运行命令${answer}
,并将其输出导入sed
sed
是有效的命令,但您的$answer
不是(它只是一个字符串)
最简单的解决方案是根本不使用管道或外部命令:
newAns="${answer#\[}"
将删除一个前导的
[
您可能是指echo$answer
?希望不是--没有引号,如echo“$answer”
,它会运行冲突。这也应该起作用:newAns=$(echo“$answer”\124; sed's/\[/')
,然后echo“$newAns将给出输出:foo]
。你可能是指echo$answer
?希望不是——没有引号,就像在echo“$answer”
中一样,它与之相冲突。这也应该是可行的:newAns=$(echo“$answer”| sed's/\[/')
,然后echo“$newAns”
将给出输出:foo]
。