📜  获取操作系统的通用命令 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:41:28.392000             🧑  作者: Mango

获取操作系统的通用命令 - Shell-Bash

在编写 Shell/Bash 脚本时, 获取操作系统的通用命令 是非常常见的需求。下面介绍几种获取操作系统通用命令的方法。

which 命令

which 命令可以在环境变量 PATH 中搜索指定的命令,并返回完整路径名。因此,只要在 Shell/Bash 脚本中使用 which 命令,就可以判断指定的命令是否安装了。

#!/bin/bash

if which git > /dev/null; then
  echo "git is installed"
else
  echo "git is not installed"
fi

上面的例子演示了如何判断 git 命令是否安装。如果 git 命令安装了,则会输出“git is installed”,否则输出“git is not installed”。

command 命令

command 命令可以搜索操作系统的通用命令,因为它只搜索 PATH 环境变量中的目录。因此,如果要判断一个操作系统的原生命令是否安装了,就可以使用 command 命令。

#!/bin/bash

if command -v ps > /dev/null; then
  echo "ps is installed"
else
  echo "ps is not installed"
fi

上面的例子演示了如何判断 ps 命令是否安装。如果 ps 命令安装了,则会输出“ps is installed”,否则输出“ps is not installed”。

hash 命令

hash 命令可以查找已经执行过的命令。因此,如果指定的命令已经执行过,就可以使用 hash 命令判断它是否安装了。

#!/bin/bash

if hash git 2> /dev/null; then
  echo "git is installed"
else
  echo "git is not installed"
fi

上面的例子演示了如何判断 git 命令是否安装。如果 git 命令安装了,则会输出“git is installed”,否则输出“git is not installed”。

type 命令

type 命令可以判定是否指定的命令是操作系统原生命令,还是 Bash 函数、别名等。

#!/bin/bash

if type -p echo >/dev/null; then
  echo "echo is an operating system command"
else
  echo "echo is not an operating system command"
fi

上面的例子演示了如何判断 echo 命令是否是一个操作系统原生命令。如果 echo 是一个操作系统原生命令,则会输出“echo is an operating system command”,否则输出“echo is not an operating system command”。

总结

以上是获取操作系统通用命令的几种方法。一般来说,which 命令和 command 命令是最常用的。如果需要判断一个 Bash 函数、别名等命令,则需要使用 type 命令。如果指定的命令已经执行过,则可以使用 hash 命令对其进行判断。