如何将变量传递给 sh 子进程?

如何将变量传递给 sh 子进程?

可能的重复:
如何将变量“发送”到子shell?

我有一个bash脚本,在该脚本中我做了sh。如何将变量传递给新 shell?是这样的(简化为具体问题):

脚本.sh:

#!/bin/bash
#......
MYVAR=myvalue
sh -c 'some_code_here'
#......

基本上我想MYVAR在我的some_code_here部分使用。我正在考虑创建一个临时脚本并执行它。但如果有一种简单的方法可以通过,我可以避免使用临时脚本。

答案1

只是export它:

#!/bin/bash

export MYVAR=myvalue
sh -c 'some_code_here'

答案2

为了避免需要特殊的 shell 语法并避免出现诸如 之类的问题sudo,请使用env

env MYVAR=value sh -c "blah"

相关内容