Bash awk:cmd。第1行:致命:无法打开文件“-eq';用于读取(无此类文件或目录)
我对bash脚本非常陌生,我尝试检查了前面的错误示例,但我仍然不明白为什么它不起作用 下面是抛出错误的代码片段: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
#!/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。谢谢各位。你们都帮了我很大的忙。啊!谢谢。是的,我不得不再次从外观上看问题。我把这里的一些事情弄糊涂了,不过这是有道理的。再次感谢。