Bash 检查unix列表中的参数

Bash 检查unix列表中的参数,bash,unix,Bash,Unix,我在一个列表中有一个名字列表(比如name.txt),其中有一组名字列表 name.txt babu praveen kamal sneha 在我的bash脚本中,此名称将作为运行时参数$1传递。 现在我必须做一个匹配来检查输入的名字是否在我的列表中 如果它不在那里,那么我将打印出无效名称并退出。你能帮我吗 我试过这个 if [[ "$1" != "babu" || "$1" != "praveen" || "$1" != "kamal" ... ]]; then exit fi 但

我在一个列表中有一个名字列表(比如name.txt),其中有一组名字列表

name.txt

babu
praveen
kamal
sneha
在我的bash脚本中,此名称将作为运行时参数$1传递。 现在我必须做一个匹配来检查输入的名字是否在我的列表中

如果它不在那里,那么我将打印出无效名称并退出。你能帮我吗

我试过这个

if [[ "$1" != "babu" || "$1" != "praveen" || "$1" != "kamal" ... ]]; then
    exit
fi
但这在职业上看起来并不好


有没有其他简单而体面的方法来实现这一点?

我想你可以使用grep:

if ! grep -qFxf name.txt <<<"$1"; then
    exit
fi

if!grep-qFxf name.txt/dev/null
添加到命令,如注释中所示。这将防止显示发送到标准错误的任何消息。

可能控制
stderr
<代码>grep-qFxf name.txt