持久变量成功或失败shell命令

时间:2016-05-25 12:43:34

标签: bash shell

我有以下program.sh:

#!/bin/bash

(true && { echo true1; echo true2; TEST=1; } || { echo false1; echo false2; TEST=0; }) >> program.log

echo test: $TEST

为什么program.sh的输出是:

test:

在TEST中保留值的解决方法是什么?

1 个答案:

答案 0 :(得分:4)

使用括号创建子shell。子shell中的变量赋值不会传播回父shell。尝试将()替换为{}

{ true && { echo true1; echo true2; TEST=1; } || { echo false1; echo false2; TEST=0; }; } >> program.log