2015-09-16 33 views
0

我很bash脚本新,我试图检查通过前面的这个错误的例子,但我还没有承认,为什么这不工作awk:cmd。行:1:致命:无法打开文件'-eq'的阅读(没有这样的文件或目录)

这里的代码抛出了错误的这段:

#!/bin/bash 

function group_check(){ 
    if [[getent group | awk -F":" '{print$1}' -eq $1 ]] ; then 
      echo "The user exists!" 
    else 
      echo "The user doesn't exist!" 
    fi 
} 

group_check tim 
group_check tam 

希望有人不能指出哪里我去错了或者甚至建议这样做的更好的办法,但我还蛮想明白的地方即时通讯错误。

感谢

+0

您传递给awk的参数是'-eq',您需要使用'$()'将命令放入子shell中。我也不知道它是如何得到的,因为在[''['' – 123

+0

有更简单的方法来检查组中的参数$ 1是否需要留出空间。 – karakfa

+0

谢谢大家,你们都很有帮助。 – PAG

回答

2

如果你想将一个命令的输出与一个号码,则必须在其命令为$(...)捕捉到它的输出:

if [[ $(getent group | awk -F":" '{print$1}') -eq $1 ]] ; then 

注意空格之后[[ ISN” t可选。

另请注意,-eq比较数字,您应该使用==进行字符串比较。

+0

啊!谢谢。是的,我必须再次按照它的外观打开书。我在这里混淆了很多东西,但这是有道理的。再次感谢。 – PAG

相关问题