我使用以下代码执行shell命令,问题是当我将其作为应从用户那里获取的参数时,它不起作用,但是如果我对其进行硬编码,则它可以工作。


  工作中


VAL=`./test a | grep '^.(\bpass\b)?.$' | cut -d ' ' -g1`



  无法运作


VAL=`./test a | grep ${param} | cut -d ' ' -g1`


在我使用cat进行参数设置的不起作用的版本中,我看到打印的值正确,通过${param}时我会错过什么呢?

最佳答案

shell中的参数为$ 1 $ 2 $ 3等...
现在,您键入的是空数据。

您可能需要在$ 1参数周围加上“”。并确保$ 1的值确实是正确的值。

09-10 02:27
查看更多