什么是;set-t";你在bash做什么?

什么是;set-t";你在bash做什么?,bash,Bash,我已经尝试过测试它,但它似乎不像手册上说的那样工作-从帮助集: -读取并执行一个命令后,t退出 我尝试了两种不同的测试: 对于这个,没有输出到终端 #!/usr/bin/env bash set -t echo "test" 对于这一个,运行它,然后从终端运行echo$TEST\u VAR,显示$TEST\u VAR为空 #!/usr/bin/env bash set -t export TEST_VAR="test" set-t真正做的是什么?它可以如何使用的示例是什么?set-t

我已经尝试过测试它,但它似乎不像手册上说的那样工作-从
帮助集

-读取并执行一个命令后,t退出

我尝试了两种不同的测试:

对于这个,没有输出到终端

#!/usr/bin/env bash

set -t

echo "test"
对于这一个,运行它,然后从终端运行
echo$TEST\u VAR
,显示
$TEST\u VAR
为空

#!/usr/bin/env bash

set -t

export TEST_VAR="test"

set-t
真正做的是什么?它可以如何使用的示例是什么?

set-t
会导致bash立即退出,因为它成为退出之前读取和执行的一个命令。它可能是用来创建一个临时shell的。有关其使用位置的示例,请参见

对于这个运行它,然后从 终端显示$TEST_VAR为空

#!/usr/bin/env bash

set-t

导出测试\u VAR=“测试”

当然,当您重新打开新的终端时,它处于另一个环境中
它已经完成并仅应用于其第一个终端环境。。证明它

set -t;>test
重新打开终端,它将是新的
test
文件

运行
export
(或子shell中的任何其他赋值)不会更改父进程shell中的变量,因此在调用shell的终端中测试
$test\u VAR
并没有特别的意义——在任何地方都会得到相同的行为,无论
-t
或在
fork()
ed off子进程中调用脚本后设置的任何其他标志。