我的问题似乎是微不足道的,但我没有设法find任何有用的互联网。 我有一个二进制
/urs/bin/binary
但是已经过时了,例如在一些安装上可以使用更新的版本
/mount/new_version/binary
binary -doSomething
我需要这个脚本来调用新版本的二进制文件,而不是旧的,但我没有权限改变这个脚本。 是以某种方式覆盖它的path,但只为我的用户? 任何帮助,将不胜感激。
如果二进制文件位于/usr/bin/binary
,并且脚本在不指定完整path的情况下调用二进制文件,而是依赖PATH
/usr/bin
,则可以简单地将新二进制文件的位置添加到用户的PATH
。 把这样的东西放在他们的~/.bashrc
:
PATH=/mount/new_version:$PATH
出于安全原因,脚本通常指定二进制文件的完整path来防止这种情况。
如果您有权访问二进制文件,您可以将其备份并创build一个符号链接。
mv /urs/bin/binary /urs/bin/binary.bkp ln -s /mount/new_version/binary /urs/bin/binary
[编辑]
对不起,没有看到只能为一个用户完成更改。
你可以创build一个函数来调用,而不是二进制。
根据您执行二进制文件的方式(完整path或只是名称),您必须创build一个合适的函数 ,如:
# Full path function /urs/bin/binary () { command /mount/new_version/binary "$@"; } export -f /urs/bin/binary # Name function binary () { command /mount/new_version/binary "$@"; } export -f binary
如果二进制不接受/需要参数,删除“$ @” 。
要自动创build函数,请将.profile文件中的函数行放在用户主目录中。
alias commandname=/mount/new_version/binary
在.bashrc上面的path声明/导出或者在configuration文件中将会很容易完成。