如何在su的输入命令中定义环境变量

时间:2010-09-09 12:34:54

标签: bash shell su

此命令的输出为空。

su user -c "ABC=abc;echo $ABC"

任何想法,如何在输入命令中定义变量?

2 个答案:

答案 0 :(得分:5)

将报价更改为单引号。双引号允许变量在当前未设置的环境中被替换。要查看差异,请尝试使用$USER版本并将其与此版本进行比较:

su user -c 'ABC=abc; echo $ABC; echo $USER'

答案 1 :(得分:2)

如果使用bourne shell变体:

ABC=abc su user -c 'echo $ABC'

如果没有,请使用环境

env ABC=abc su user -c 'echo $ABC'