gpt4 book ai didi

perl - Shell 测试以查看二进制文件是否在您的路径中

转载 作者:行者123 更新时间:2023-11-29 09:08:00 24 4
gpt4 key购买 nike

在 csh、tcsh、bash、perl(等)中,您可以进行与(不一定使用相同语法)相同的测试:

test -e PATH; # Does PATH exist
test -f PATH; # Is PATH a file
test -d PATH; # is PATh a directory
...

是否存在用于检查二进制文件是否在您的路径中的类似构造? (也许是否存在别名,甚至是内置的)

显然这可以通过以下形式完成:

#!/usr/bin/env bash
C=COMMAND;
test $(which $C) -o $(alias $C) && "$C exists"

或其他 shell/脚本语言中的类似内容。

问题不在于是否可以测试程序、命令等是否存在。问题在于是否存在内置测试。

最佳答案

从技术上讲,如果您只是在当前 PATH 中寻找内容,那么唯一真正的解决方案是第二个代码块的第一部分:

which $C

which 是唯一真正符合当前 PATH 实际要求的,因为 whereis 将在路径外搜索:

whereis ... attempts to locate the desired program in a list of standard Linux places.

from whereis(1)

alias 当然与实际的可执行文件无关,而是在您的 shell 环境中使用别名命令

所以,实际上,您已经找到了正确的方法,只是要小心,您知道 whereis 可能对该测试链没有帮助。

关于perl - Shell 测试以查看二进制文件是否在您的路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5807395/

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