📅  最后修改于: 2023-12-03 15:13:37.879000             🧑  作者: Mango
在操作系统中,Bash 是一种常见的 shell,它类似于 Windows CMD 中的命令行环境。Bash 提供了许多有用的命令和工具,让程序员能够更快、更高效地完成工作。 在本文中,我们将介绍 Bash 中类似于 CMD 中的选项。
在 CMD 中,我们可以使用 /
或 -
前缀和一个选项来设置命令的行为。例如:
dir /w /p
在上面的命令中,/w
和 /p
是选项。他们告诉 dir
命令输出显示格式和分页处理。
在 Bash 中,我们可以使用 --
或 -
前缀来设置选项,--
前缀一般用于长选项,-
一般用于短选项。例如:
ls -R
在上面的命令中,-R
是一个选项,它告诉 ls
命令递归地列表目录。
Bash 提供了 getopts
命令来解析传递给脚本的选项。getopts
命令有两个参数:选项字符串和变量名。选项字符串包括定义的选项和选项参数,以冒号分隔。变量名是需要解析的选项。
例如下面的脚本:
while getopts ":a:b:" opt; do
case $opt in
a)
echo "Option a has value $OPTARG"
;;
b)
echo "Option b has value $OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
在执行 ./script.sh -a foo -b 123
命令后,将输出:
Option a has value foo
Option b has value 123
在这个脚本中,我们定义了 -a
和 -b
两个选项。当 getopts
命令解析 -a
选项时,我们可以通过 $OPTARG
变量来访问它的值,同样的,当解析 -b
选项时也是同样的处理。
如果 getopts 命令无法识别选项,则会在错误流中打印一条错误消息,并返回 ?
,这时我们可以通过 case 语句中的 "\?"
来判断是否为无效选项,并在错误流中打印错误信息。
Bash 中类似于 CMD 中的选择是非常强大的工具,它们让我们可以控制命令的行为,使我们更方便,更快速地处理任务。同时使用 getopts
命令解析选项也能使我们更好、更准确地获得选项的值。