我在Linux中有一个脚本,它将检查从参数输入的数字。此$状态中的数字可能会有所不同。检查$ status中的代码是否在一组代码内之后的脚本代码。如果是,那么回声"它存在"。如果没有,那么回声"不存在。"
问题是代码组可能会发生变化,将代码更改为条件以反映这些更改是一件痛苦的事。所以我想将所有这些数字放在一个文件中。
例如:
脚本check.sh
:
$filecheck = "check.txt"
$status = $1
if [ $status EXISTS WITHIN $filecheck ]; then
echo "It exists."
else
echo "Does not exist."
fi
check.txt
内容:
201
5099
305
8670
2
582
9582
运行:# ./check.sh 305
结果:It exists.
运行:# ./check.sh 689
结果:Does not exist.
问题是,我应该如何制定有条件的?我觉得这应该不是很难并涉及grep,但我不知道如何在谷歌中提出这个问题以获得我需要的结果,而且我也是bash脚本和Linux的初学者。实际上脚本不仅仅是这个,但我只需要条件部分,所以我简化了这个。感谢。
答案 0 :(得分:3)
使用grep:
if grep -q "$1" "$filecheck" >/dev/null 2>&1; then
echo "it exists"
else
echo "it does not exist"
fi
答案 1 :(得分:1)
它看起来不像是一个bash脚本,但我想我得到了你的问题。您想要查找列表中是否存在给定数字。要做到这一点' grep -w ...'应该适合你,寻找完全匹配。请注意,它假定每个数字都在不同的行上。
所以你的shell脚本如下所示:
filecheck="check.txt"
status=$1
grep -w $status $filecheck >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "It exists."
else
echo "Does not exist."
fi