Bash,...使用bash脚本检查是否安装了程序

时间:2015-04-20 13:25:16

标签: bash

我正在尝试创建一个小脚本来检查程序是否已安装。我正在尝试使用tmux,...

`tmux --help` | grep "tmux: command not found" &> /dev/null
if [ $? == 1 ]; then
    echo "tmux is not installed"
    exit
fi

安装完tmux后,我得到:

usage: tmux [-2lquvV] [-c shell-command] [-f file] [-L socket-name]
            [-S socket-path] [command [flags]]
tmux is not installed

如果没有安装某个程序,请修改字符串" tmux:command not found"。这可以解释为什么我grep tmux --help命令的输出。检查tmux是否安装的正确方法是什么?

脚本alwais回声"未安装tmux"。即使我安装了tmux。它有什么问题?

1 个答案:

答案 0 :(得分:6)

您可以使用commandtypehash内置函数来测试给定命令在当前shell会话中是否可用。

但是,这不会告诉您它是否在当前PATH以外的某个位置可用。

你应该避免使用which来达到这个目的(即使这是你会从很多人那里得到的默认建议),因为它不是一个标准化的工具(不完全)而且它是一个外部的工具与上面相比都是内置于shell中的(因此检查成本更高)。