gpt4 book ai didi

bash - 如何从 bash 脚本 "hide"可执行文件?

转载 作者:行者123 更新时间:2023-11-29 08:59:21 25 4
gpt4 key购买 nike

我想在 bash 脚本所依赖的可执行文件之一丢失时测试它的输出,所以我想在“隐藏”依赖项但没有其他依赖项的情况下运行该脚本。 PATH= ./script 不是一个选项,因为脚本在到达我要测试的语句之前需要运行其他可执行文件。有没有一种方法可以在不改变文件系统的情况下从脚本中“隐藏”可执行文件?

举个具体的例子,我想运行this script但是隐藏 git 可执行文件(这是它的主要依赖项),以便我可以在这些条件下测试它的输出。

最佳答案

您可以使用内置命令,hash :

hash [-r] [-p filename] [-dt] [name]

Each time hash is invoked, it remembers the full pathnames of the commands specified as name arguments, so they need not be searched for on subsequent invocations. ... The -p option inhibits the path search, and filename is used as the location of name. ... The -d option causes the shell to forget the remembered location of each name.

通过将一个不存在的文件传递给-p选项,就好像找不到该命令一样(尽管仍然可以通过完整路径访问)。传递 -d 会撤消效果。

$ hash -p /dev/null/git git
$ git --version
bash: /dev/null/git: command not found
$ /usr/bin/git --version
git version 1.9.5
$ hash -d git
$ git --version
git version 1.9.5

关于bash - 如何从 bash 脚本 "hide"可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com