问题是
运行这两个命令到底有什么区别。
作为根,我制作了一个自定义环境。多变的
export A="abcdef"
然后在 root shell
sudo -i
echo $A
返回
abcdef (as expected)
但是,当我回到普通用户并运行时
sudo -i echo $A
它返回空行。
那么当您运行命令 sudo echo $A 时,它是否使用普通用户的环境变量和 shell?
即使我运行 sudo echo $A 也有办法获得 abcdef 吗?
谢谢
编辑 1
当您说您已将变量 A 作为 root 时,我假设您的意思是您在 root 的 .profile 或类似的东西中执行了此操作。-->(是的!)
编辑 2
这很有意义,但有一些麻烦。
当我做
sudo -i 'echo $A'
我得到
-bash: echo $A: command not found。
但是,当我这样做时
su -c 'echo $A'
它回馈
abcdef
有什么问题
sudo -i 'echo $A'
命令?