2017-09-03 101 views
1

我使用下面的代码来执行shell命令,问题是,当我把它作为参数,我应该从用户得到它不工作,但如果我把它硬编码它的作品,任何想法可能是什么问题?壳参数doest传递命令

工作

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

不工作

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

在不工作的版本,我做cat到PARAM我看到了价值印刷OK,我该怎么办错过时我通过${param}

+0

变量'param'确实包含正确的值吗?运行'-x'下的代码来验证它,或者在之前执行一个'echo param =“$ param”'。 – user1934428

回答

1

shell中的参数是$ 1 $ 2 $ 3 etc ... 现在你输入的是空数据。

您可能需要在$ 1参数周围放置“”。并确保1美元的价值确实是正确的价值。

+0

那么我应该如何改变命令? –

+0

取决于你想做什么 – George

+0

如果我做'echo $ {param}“'我看到数据,所以我应该如何改变它? –