有没有一个命令可以检查一个程序是否存在,即使它是一个别名?
我刚刚读过题目:How can I check if a program exists from a Bash script?
但是command -v PROGRAM_NAME
不支持别名,比如说,它不支持ls
,ls
是Ubuntu上ls --color=auto
的默认别名。
那么,我必须创建一个函数来实现这一点吗?
它可以首先使用command -v
进行检查,如果不起作用,则使用正则表达式查找别名链接到的位置,然后使用正则表达式结果重试。
但如果这是正确的解决方案,我会感到惊讶......实际上,如果Linux上没有程序来检查一个程序是否存在,那就奇怪了,对吗?
编辑:
“不起作用”意思是:
$ if [ -x "$(command -v python)" ]; then echo "python exists"; fi
python exists
但如果我输入:
$ if [ -x "$(command -v ls)" ]; then echo "ls exists"; fi
此处未打印任何内容
我希望条件检测程序仍然存在。
1条答案
按热度按时间bxgwgixi1#
test
-L
选项应该可以使用: