Bash脚本-将输出从源脚本传递到变量

时间:2018-09-18 09:27:38

标签: bash

我得到了bash入门脚本,该脚本从某些env文件中获取独特的工具。 然后我继续运行将使用这些脚本的python脚本。

output=$(source $envPath 2>&1)在输出变量中给我文本输出,但是将来当我最终运行python脚本(通过该bash脚本)时,我无法访问.env文件中的源工具。

它对于单个source $envPath来说很好用,可以访问python脚本,但是我无法读取该源的输出。

output=""
# source $envPath >$output # doesnt work
# source $envPath | $output # doesnt work
echo $output

我需要输出来验证它并执行正确的操作

2 个答案:

答案 0 :(得分:1)

我认为这个问题与python不相关,而是一个纯粹的shell语法问题。

export output=`source $envpath`

应该做。

答案 1 :(得分:1)

将输出保存到临时文件中,您可以从中填充变量:

1.sh

#!/bin/bash
tmp=$(mktemp)

. 2.sh > "$tmp"
output=$(< "$tmp")
echo "$output"
echo "$EXPORTED"

2.sh

echo 123
EXPORTED=1

1.sh的输出:

123
1