我试图在我的文件中查找$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的结果,我从这个中得到了一些有用的东西。
感谢您阅读
答案 0 :(得分:2)
由于grep根据是否找到记录返回退出状态,您可以编写if语句,如:
if grep .....; then