【发布时间】:2018-11-07 19:45:17
【问题描述】:
就路径而言,在 bash 脚本中使用 Linux 命令的最佳和最正确的方法是什么?仅使用 ip addr show 是否正确,依赖于 shell 路径,还是我应该先找到命令的路径(如使用 whereis ip 或 command -v ip),将输出分配给某个变量然后使用它?
【问题讨论】:
-
这两个都使用
PATH来确定绝对路径,所以这是一个无用的中间步骤。 -
我希望我有时间写一个详细的答案。悬崖笔记:使用简单的命令,不要担心
$PATH。在变量中存储绝对命令路径是一种常见的反模式。$PATH是在用户的控制之下,所以如果设置不正确,那是他们自己的错。他们没有什么可以通过改变来利用的;毕竟,他们总是可以手动运行脚本的命令;或者只是编辑脚本然后运行它。如果您提升权限,您只需要小心$PATH。例如,您会看到su和sudo具有防止漏洞利用的保护措施。 -
感谢您的评论,@JohnKugelman