Linux Bash脚本使用位置参数不返回任何内容

Linux Bash脚本使用位置参数不返回任何内容,linux,bash,syntax,command-substitution,Linux,Bash,Syntax,Command Substitution,理论上,运行脚本应该根据使用的参数每行输出结果 脚本名为“stdout”,并已使其可执行。我在控制台中输入“./stdout GOOGLE.COM”,什么也没发生 #/bin/bash 如果[$#-lt 1];然后 echo“结果:[cat whois_google.com.txt | grep$1 | cut-d'-f3 | sort-r]” 出口1 fi 没有错误,文本文件是一个虚拟文件,包括简单的字段,如“Server Name:GOOGLE.COM.AR”,运行命令后,我希望输出不同的

理论上,运行脚本应该根据使用的参数每行输出结果

脚本名为“stdout”,并已使其可执行。我在控制台中输入“./stdout GOOGLE.COM”,什么也没发生

#/bin/bash
如果[$#-lt 1];然后
echo“结果:[cat whois_google.com.txt | grep$1 | cut-d'-f3 | sort-r]”
出口1
fi

没有错误,文本文件是一个虚拟文件,包括简单的字段,如“Server Name:GOOGLE.COM.AR”,运行命令后,我希望输出不同的服务器名称

如果将参数传递给脚本,它将永远不会做任何事。。。如果[$#-gt 0];然后,脚本的第行检查参数数是否小于1。尝试更改为
-gt
。将脚本命名为stdout也是一个坏主意,为脚本的功能选择一个名称。

[cat…]
替换为
$(cat…
。如果你有
[$lt 1]
,你应该有
-lt
以外的东西。可能是
-ge
-eq
?一旦您获得了预期的
回音
,您就可以按照@Cyrus的更正来实际执行子shell。您真正的
退出1
通常表示存在错误。您希望退出0,或者让脚本运行到最后,返回脚本执行的最后一个外部命令的状态代码。可能是
-ge
,不是吗?使用
-gt
,只有当有2个或更多参数时才有效。或者,
如果(($)
对于1个或多个参数为true,对于0为false。