在成功或失败的外壳命令中保留变量



>我有以下 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 中保留值的解决方法是什么?

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

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

相关内容

  • 没有找到相关文章

最新更新