转义反引号 - 在命令行中将参数传递给ksh脚本时的重写(`)

时间:2018-05-31 13:50:44

标签: linux command-line ksh gnu

我写了一个方便的ksh shell脚本,它读取输出firstcommand,从grep执行一些过滤,结果值被输入othercommand

handy.ksh
#!/usr/bin/ksh 
othercommand `firstcommand | grep  'keyword' | cut -d ' ' -f 1`

它非常好用。 但是,我想通过命令行传递我的关键字'关键字。通常我可以使用$ 1

>handy.ksh TEST

并且脚本$ 1内部将是TEST 但是,我无法逃脱坟墓,而且1美元的字面解释。

如何逃避??

1 个答案:

答案 0 :(得分:2)

您可以使用$()代替反对:

#!/usr/bin/ksh
# test.ksh
echo $(echo "foo bar" | grep  "$1" | cut -d ' ' -f 1)

现在你可以这样称呼它:

ksh test.ksh foo