Answers:
sudo
在调用给定命令之前,先清理环境中的变量。您将不得不要求它在环境中保留变量以使您的命令起作用。
此外,在使用()之前,您必须先export
对该FMPEG
变量进行赋值,然后再调用()或使用()来对其进行分配。sudo
export FMPEG=yes; sudo
sudo
FMPEG=yes sudo
env
env FMPEG=yes sudo
要保留环境变量,请使用-E
(或--preserve-env
):
$ env FMPEG=yes sudo -E sbopkg -B -i vice
也可以这样设置特定的环境变量:
$ sudo FMPEG=yes sbopkg -B -i vice
如果由于适当的安全策略而失败,请启动根shell并在此处设置变量:
$ sudo -s
# env FMPEG=yes sbopkg -B -i vice
# exit
注意:
(export a=b; command)
等同于a=b command
。注意括号。
然后,如果我们将变量不应用于sudo
而是直接应用于sbopkg
,那么FFMPEG=yes sudo sbopkg -B -i vice
我们可以
代替sudo FFMPEG=yes sbopkg -B -i vice
如果安全警察阻止此操作,则:
sudo bash -c "FFMPEG=yes sbopkg -B -i vice"
(不要使用-E
,因为它会泄漏各种意外变量,所以它是不安全的。)