将 /sbin 添加到 $PATH 但只是暂时的

将 /sbin 添加到 $PATH 但只是暂时的

关于如何将目录添加到 $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

相关内容