我可以做以下事情:
$ FOO="text"
$ echo $FOO
$ text
但是如何将它包装在bash -c
构造中?我尝试了但失败了:
$ FOO="text"
$ bash -c 'echo $FOO'
$ # return nothing
我问这个的原因是因为我需要执行另外需要包含在bash -c
内的第三方代码
答案 0 :(得分:5)
尝试
$ export FOO="text"
$ bash -c 'echo $FOO'
export命令用于将变量或函数导出到 当前shell中运行的所有子进程的环境。
" bash"命令启动子进程,其父进程是您当前的bash会话。
要在父进程中定义变量并在子进程中使用它,您必须将其导出。
答案 1 :(得分:-1)
你可以使用bash -c 'FOO=test; echo \$FOO'
或export FOO=test;bash -c 'echo $FOO'