【发布时间】:2018-08-14 15:44:05
【问题描述】:
我正在尝试创建一个 bash 脚本,每次运行脚本时都会切换输出(对于 polybar 中的某些功能)。在我看来,最简单的方法是基于环境变量的值,但它没有按预期工作。
这是我为测试而编写的脚本,假设该脚本由其他东西运行,并且可以访问 env 变量。
echo $STATE
if [[ $STATE == "public" ]]; then
echo foo
export STATE='private'
elif [[ $STATE == "private" ]]; then
echo bar
export STATE='public'
fi
echo $STATE
我想要的输出是
$ ./test.sh
public
foo
private
$ ./test.sh
private
bar
public
但实际输出是
$ ./test.sh
public
foo
private
$ ./test.sh
public
foo
private
export 调用似乎不是持久的
【问题讨论】:
-
不是;您不能从子进程修改进程的环境。
标签: bash shell environment-variables toggle