好的,所以这是一个作业,所以我不会在这里输入确切的剧本,但我现在非常绝望,因为我无法想象基本的东西,如果有的话。所以我基本上检查在命令行中写入的两个参数是否合适(用户需要正确键入),否则它将回显特定的错误消息。但是,当我输入一个100%正确参数的命令时,我从第一个条件ALWAYS获得错误回显消息(即使我切换条件语句)。似乎脚本只运行第一个回声并停止,无论如何。请帮助,我理解它可能很难,因为我的代码更像是一个骨架。
if [ ... ]; then
echo "blah"
elif [ ... ]; then
echo "blah2"
else for file; do
#change file to the 1st argument
done
fi
我显然需要最后的其他事情,以便我的脚本实际上服务于其预期目的。但是,我的问题就是阻碍了。 if和elif需要返回false才能使脚本运行适当的参数。 if和elif检查该用户是否正确输入了命令行。
答案 0 :(得分:2)
elif意味着别的 - 如果。因此,只会检查第一个语句是否返回false。所以如果你想检查两者是否正确呢。
if [ ... ] then
...
fi
if [ ... ] then
...
fi
答案 1 :(得分:0)
当您关心 条件时 他们必须满足条件的一套标准,然后你需要一个复合测试结构,如:
if [ "$1" = somestring -a "$2" = somethingelse ]; then
do whatever
fi
也可以写
if [ "$1" = somestring ] && [ "$2" = somethingelse ]; then
...
注意:仍支持[ .... -a .... ]
语法,但建议使用[ .... ] && [ .... ]
语法进行新开发。
您还可以通过-o
使用 OR 条件或使用第二种形式的||
来改变测试方式(真/假)。您可以使用不同的测试表达式进一步改变您的测试(例如=
,!=
,-gt
等。)