$ source /etc/environment
$ sudo source /etc/environment
[sudo] password for t:
sudo: source: command not found
似乎与bash
要执行的外壳不同,source /etc/environment
并且外壳没有source
内置的外壳。
但是my和root的默认shell都是bash
。
$ echo $SHELL
/bin/bash
如果sudo
确实使用了不同的外壳,为什么呢?我看到了slm的回复,但对我的情况不了解。
source
是内置的Shell,因此没有Shell便无法执行。但是,默认情况下,sudo
不要运行shell。从sudo
工艺模型
sudo运行命令时,它将调用fork(2),如上所述设置执行环境,并在子进程中调用execve系统调用
如果要显式执行shell,请使用-s
选项:
# sudo -s source /etc/environment
这仍然没有用,因为退出shell后,环境更改丢失了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句