如何在bash中找到可用的可执行文件

时间:2011-12-06 14:53:57

标签: bash

我编写了这个小脚本来查找作为参数传递的可执行文件,例如

./testexec du ls md 

如何让脚本不输出未找到的命令 - 例如不显示" md"的错误输出命令??

  #!/bin/sh

    for filename in "$@"
    do
    which $filename
    done

2 个答案:

答案 0 :(得分:6)

如果您使用bash,则应使用内置“类型”而不是外部实用程序“which”。如果找不到命令,type命令将返回非零退出状态,这样可以很容易地使用条件。

for filename in "$@"; do
   if type -P "$filename" >/dev/null; then
       echo "found in PATH: $filename"
   fi
done

答案 1 :(得分:3)

只需将错误消息(来自stderr)重定向到/dev/null

which $filename 2>/dev/null