grep的参数太多了

时间:2014-12-27 12:43:21

标签: bash shell grep

我试图在我的文件中查找$allowtunnel字符串。

基于:How to test if string exists in file with Bash shell?

所以现在我的脚本中有以下内容:

allowtunnel="PermitTunnel"
if [ grep -Fxq $allowtunnel /etc/ssh/sshd_config ]; then

由于在执行时它说“论证太多”,我正在寻找并发现:

Bash script - too many arguments

所以我将其改为:

if [[ grep -Fxq $allowtunnel /etc/ssh/sshd_config ]]; then

但现在,它给了我下一个:

./script_install.sh: línea 242: se esperaba un operador binario condicional
./script_install.sh: línea 242: error sintáctico cerca de `-Fxq`
./script_install.sh: línea 242: `    if [[ grep -Fxq $allowtunnel /etc/ssh/sshd_config ]]; then`

翻译将是:

./script_install.sh: line 242: binary conditional operator was expected
./script_install.sh: line 242: syntax error near of `-Fxq`
./script_install.sh: line 242: `    if [[ grep -Fxq $allowtunnel /etc/ssh/sshd_config ]]; then`

据我了解,它不允许我使用第二个[]因为它需要另一个运算符。这让我不知道该怎么做。

我也看过这一个:Too many arguments error in bash,但由于我不是在比较某些东西,而是等待grep的结果,我从这个中得到了一些有用的东西。

感谢您阅读

1 个答案:

答案 0 :(得分:2)

由于grep根据是否找到记录返回退出状态,您可以编写if语句,如:

if grep .....; then