Linux可以存储函数,使用function系统可以很容易地调用这些函数。但是,如果我想写几个If语句,这些语句应该使用相同的推理,这可以做到吗?例如:
if [ x == 1 ]
then
...
fi如果我需要为无数的公式使用x == 1并全部改变,那么一个块公式是否可以包含这个等式,这样我只需要做一次修改,而不是需要修改所有的公式?
发布于 2017-10-19 19:00:27
您可以将逻辑封装在一个函数中,并将该函数用作if中的条件
my_check() {
[ "$x" -eq 1 ]
}
if my_check
then
echo yes
else
echo no
fi这利用了shell函数的退出状态是最后执行的命令的退出状态的优势。因此,如果"$x“等于1,则my_check的返回状态将为0 (即。成功),然后您将进入主分支。否则退出状态将为1 (即失败),然后您将进入备用分支。
您可以有多个函数,每个条件对应一个:
check_a() {
[ "$x" -eq 1 ]
}
check_b() {
[ "$x" -eq 2 ]
}
check_c() {
[ "$y" -eq 1 ]
}
if check_a && check_c
then
echo "a and c are true"
elif check_b && check_c
then
...
elif check_c
then
...
else
...
fihttps://stackoverflow.com/questions/46827908
复制相似问题