答案1
是否有明显正确的方法来指定我要使用哪些类似的命令?
冒着一点点的风险也显然,一种明显的方法是指定您希望脚本使用的确切可执行文件的完整路径:
#!/usr/bin/env bash
# use the col executable in /usr/bin, not that other one:
col='/usr/bin/col'
$col ... ... ...
正如 @muru 指出的,另一种方法是声明一个函数col()
来调用您希望使用的特定二进制文件:
#!/usr/bin/env bash
# use the col executable in /usr/bin, not that other one:
col()
{
/usr/bin/col "$@"
}
col ... ... ...
答案2
找到它们,例如type -a column
,重新排列您的目录$PATH
,使包含您想要的版本的目录位于包含您不想要的版本的目录之前。然后,发出rehash
命令。
PATH
编辑很棘手。永远不要做PATH=
没有内容的作业$PATH
,除非你真的确定自己在做什么。
我使用 Stephen Collyer 的 bash_path_funcs,早在 2000 年就在 Linux Journal 中进行了描述:
https://www.linuxjournal.com/article/3645 https://www.linuxjournal.com/article/3768 https://www.linuxjournal.com/article/3935
addpath
仅当路径中最初不存在该条目时,该函数才会将其添加到路径中。delpath -n
从路径中删除所有不存在的目录。
您可以pathfunc.tgz
从以下位置获取该文件 https://web.archive.org/web/20061210054813/http://www.netspinner.co.uk:80/Downloads/pathfunc.tgz