AIX条件多命令执行

时间:2014-07-08 20:28:43

标签: shell scripting ksh aix

希望有人可以提供帮助。 我正在尝试在ksh上执行以下操作。 有一个名为var的变量和一个名为var1的变量。

var=
var1=Y
[[ $var1 = "N" ]] || (command 1; var=N)

执行上述操作时,变量“var”未赋值。该命令正在执行,但就像“var”超出范围并且它正在创建一个新变量(我在分配后尝试了一个回声,得到正确的值N回显)。

[[ $var1 = "N" ]] || (command 1; var=N; echo $var)

有人知道解决这个问题的方法吗?

我使用双管道的原因是为了避免使用IF语句,因为我有很多相同的条件。

由于

1 个答案:

答案 0 :(得分:2)

使用{...}而不是(...)进行命令分组,如

[[ $var1 = "N" ]] || { command 1; var=N; echo $var; }

这避免了对分组命令列表进行变换,从而保留赋给变量的值。这适用于AT& T和MirBSD Korn Shells。