Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash awk:cmd。第1行:致命:无法打开文件“-eq';用于读取(无此类文件或目录)_Bash_Awk - Fatal编程技术网

Bash awk:cmd。第1行:致命:无法打开文件“-eq';用于读取(无此类文件或目录)

Bash awk:cmd。第1行:致命:无法打开文件“-eq';用于读取(无此类文件或目录),bash,awk,Bash,Awk,我对bash脚本非常陌生,我尝试检查了前面的错误示例,但我仍然不明白为什么它不起作用 下面是抛出错误的代码片段: #!/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!" f

我对bash脚本非常陌生,我尝试检查了前面的错误示例,但我仍然不明白为什么它不起作用

下面是抛出错误的代码片段:

#!/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
希望有人不能指出我哪里做错了,或者甚至不能提出更好的方法,但我很想知道我哪里做错了


谢谢

如果要将命令的输出与数字进行比较,必须将命令括在
$(…)
中以捕获其输出:

if [[ $( getent group | awk -F":" '{print$1}' ) -eq $1 ]] ; then
请注意,
[[
后面的空格不是可选的


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

您传递给awk的参数是
-eq
,您需要使用
$()
将命令放在子shell中。另外,我不知道它是如何做到这一点的,因为您还需要在
之后留出一个空间[[
有更简单的方法来检查组中的参数是否为$1。谢谢各位。你们都帮了我很大的忙。啊!谢谢。是的,我不得不再次从外观上看问题。我把这里的一些事情弄糊涂了,不过这是有道理的。再次感谢。