关于如何将目录添加到 $PATH 有很多答案。但是,我正在寻找一种将其临时添加到路径的方法。
例如,当以 sudo 身份运行脚本时,并非所有脚本都具有完整的目录路径,我想为一个实例添加它,以便脚本可以运行。
答案1
一个好方法是将路径包含在脚本命令中。因此,
ip addr
你应该
/sbin/ip addr
这消除了对路径是否具有正确条目的依赖。您可以在脚本中更新路径变量,它将只存在于脚本和任何子进程中,并在它们终止后恢复。
export PATH=$PATH:/sbin
这会添加/sbin
到现有路径。
答案2
该env
命令完全按照您的要求执行:
env variable=value command
在 的持续时间内command
,$variable
设置为value
,但当前 shell 环境不受影响,并保留在后续命令中。
在你的情况下,你会想要类似这样的东西:
env PATH=/sbin:$PATH command
请注意,这是一个外部命令,因此在运行env
时无法访问未导出的变量和别名。command