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

Posted

技术标签:

【中文标题】如何在su的输入命令中定义环境变量【英文标题】:How to define environment variable in input command of su 【发布时间】:2011-04-10 05:53:23 【问题描述】:

此命令的输出为空。

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

如果使用 bourne shell 变体:

ABC=abc su 用户 -c 'echo $ABC'

如果没有,请使用 env。

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

【讨论】:

感谢您的回答,它有效,但不完全是我需要的。我有一个很长的 su 命令输入字符串,我必须将变量的值确定为“用户”。

以上是关于如何在su的输入命令中定义环境变量的主要内容,如果未能解决你的问题,请参考以下文章

安装JDK, 要在命令行下设置路径环境变量。啥是命令行,如何启动命令行?

linux命令su,sudo 使用和区别

linux命令sudo su啥意思

linux su和sudo命令的区别

ubuntu sudo 不需要输入密码

Linux su和sudo命令的区别,并获得root权限