【发布时间】:2020-02-21 03:36:08
【问题描述】:
理论上运行脚本应该根据使用的参数每行输出结果
脚本名称为“stdout”,并使其成为可执行文件。我在控制台中输入“./stdout GOOGLE.COM”,但没有任何反应
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Results: [ cat whois_google.com.txt | grep $1 | cut -d ' ' -f 3 | sort -r]"
exit 1
fi
没有错误,文本文件是一个虚拟文件,包括简单的字段,例如“服务器名称:GOOGLE.COM.AR”,运行命令后我希望输出不同的服务器名称
【问题讨论】:
-
用
$( cat ...)替换[ cat ...]。 -
你有
[ $# -lt 1 ],你应该有-lt以外的东西。也许-ge或-eq?一旦你得到预期的echo,你可以按照@Cyrus 的修正来实际执行子shell。 -
exit 1通常表示存在错误。你想要exit 0或者只是让脚本运行到最后,它会返回脚本执行的最后一个外部命令的状态码。
标签: linux bash syntax command-substitution