为了在当前shell中执行shell脚本,我们需要使用句点.
或source
命令。但是为什么没有sudo权限就不能使用?
我有一个名为的执行许可脚本setup.sh
。当我使用句点时,得到以下信息:
$ sudo . ./setup.sh
sudo: .: command not found
源命令也会产生类似的错误。我错过了什么吗?我应该怎么做才能在同一shell中以sudo权限运行脚本?
提前致谢..
您试图做的是不可能的;您当前的shell正在您的常规用户ID下运行(即,如果没有root用户,访问权限sudo
将为您提供权限),并且无法授予root用户访问权限。什么sudo
是创建一个新的* sub *进程,该进程以root身份运行。子进程可以只是常规程序(例如sudo cp ...
,cp
在根进程中运行该程序),也可以是根子外壳程序,但不能是当前外壳程序。
(实际上,这甚至比这更不可能,因为sudo
命令本身是作为当前shell的子进程执行的-意味着从某种意义上来说,它无法在“当前shell”中执行任何操作已经太晚了,因为它不在此处执行。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句