我有.sh
档案:a.sh
在这个脚本中,在最后一行,我有下一个:
rt = $(bash ...).
我想得到这个rt。我尝试着做下一个:
bash a.sh
或echo $(bash a.sh)
,但不会显示rt
值。
答案 0 :(得分:3)
将echo rt
放在脚本的末尾,将其打印到标准输出。
如果您无法修改原始脚本,可以使用
source a.sh && echo ${rt}
正如@mouviciel已经提到的那样但是为了额外的安全性(而不是覆盖你的env
)你可以在一个子shell中使用它
bash
source a.sh && echo ${rt}
exit
或$(source a.sh && echo ${rt})
答案 1 :(得分:2)
您可以使用脚本来源,以便在交互式会话的相同上下文中运行它:
source a.sh && echo ${rt}
答案 2 :(得分:1)
使用“。”运行脚本。 (例如. ./a.sh
)。这样就不会启动新的bash,并且调用者环境中将出现rt
变量。请注意这种方式可以设置和/或修改其他变量。这可能会导致问题。