我编写了这个小脚本来查找作为参数传递的可执行文件,例如
./testexec du ls md
如何让脚本不输出未找到的命令 - 例如不显示" md"的错误输出命令??
#!/bin/sh
for filename in "$@"
do
which $filename
done
答案 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