if语句中的ASH if语句

时间:2012-07-25 20:45:44

标签: bash syntax ash

我见过许多具有多个相互关联条件的例子,但是有两个不同的无关条件,第二个条件只有在第一个条件成立时才会发生。 我怎样才能在1行中得到以下组织良好的组织?

funtion1
if [[ $valueX == 2 ]]; then
    funtion2
    if [[ $valueY -gt 16 ]]; then
        sleep $valueZ
    fi
fi

1 个答案:

答案 0 :(得分:0)

你可以很好地组织它,或者你可以把它放在一行。

我会说你现在拥有的已经很好了。我不认为有任何方法可以用更少的线条重新组织它而不会让它变得不那么清晰。

(如果funtion2不在那里,你可以将这两个条件结合起来。)

如果你坚持将整个代码块放在行上,你只需加入行并添加分号即可:

funtion1 ; if [[ $valueX == 2 ]]; then funtion2 ; if [[ $valueY -gt 16 ]]; then sleep $valueZ ; fi ; fi

但正如我所说,我认为没有人会称之为“组织得很好”;它比原始的多行精确缩进版本更难以阅读和维护。

请注意,[[语法特定于; 不支持。

(哦,你拼错了“功能”。)