2

我想运行由 Python 脚本生成的一系列 bash 命令。命令的格式为export foo="bar"alias foo=bar。他们必须修改当前进程的环境。

这很好用:

$(./generate_commands.py)

直到导出命令包含空格,例如export x="a b". 这会产生一个错误,并且只会"a被导出(包括引号)。

目前我正在通过将 generate_commands 输出到一个临时文件并获取它来解决这个问题,但是有没有更优雅的解决方案?

4

2 回答 2

4
./generate_commands | bash

这会将脚本的输出作为输入传递给bash

编辑:

为了让变量在当前 shell 中可见,您需要获取输出:

source <(./generate_commands)

或者

. <(./generate_commands)
于 2013-05-02T15:56:50.667 回答
0

我认为OP的问题是

cmd="export x=\"a b\""
${cmd}

不起作用,但是

export x="a b"

作品。我的解决方法是

export x="a"
echo $x
x+=" b"
echo $x
于 2013-05-02T15:47:51.013 回答