2

我什至无法从脚本中导出最简单的变量以在我的 bash 中工作——我做错了什么?

文件test.sh

#!/bin/bash
echo $ttt
ttt="fffalse"
export ttt
echo $ttt

重击测试:

hpek@hpek:~/temp$ export ttt="tttrue"
hpek@hpek:~/temp$ ./test.sh 
tttrue
fffalse
hpek@hpek:~/temp$ ./test.sh 
tttrue
fffalse
hpek@hpek:~/temp$ 

编辑:

我现在从答案中知道,这行不通。-但是如何在进程之间记住单个变量?我需要将其存储在文件中吗?

4

2 回答 2

4

./test.sh是相同的bash test.sh

实际上,每个运行的 shell 脚本都是父 shell 的进程(子进程)。
并且子进程无法将 env-var 导出到它的父进程。


你可以试试这个(在相同的环境下运行):

. test.sh
于 2012-05-05T00:28:30.117 回答
3

export在当前进程中工作以及之后产生的任何子进程;它不适用于跨进程边界(父进程、现有子进程、不相关进程)。该环境的行为类似于一种影子参数列表,而不是文件系统或邮箱。

于 2012-05-05T00:28:21.880 回答