📅  最后修改于: 2023-12-03 15:41:31.148000             🧑  作者: Mango
在Linux脚本中,我们经常需要从命令行获取一些参数,以便我们根据不同的参数执行不同的操作。此时就需要使用到获取附加参数的功能。
在Linux命令行中,我们通常使用参数以改变命令的行为。例如:
ls -l /tmp
其中,“-l”是一个参数,用于显示详细的文件信息。“/tmp”是另一个参数,用于指定要列出信息的目录。
当我们写一个脚本时,也可以在命令行中使用类似的参数来改变脚本的行为。
获取附加参数的代码片段可以写成以下形式:
while getopts ":a:b:" opt; do
case $opt in
a) arga="$OPTARG";;
b) argb="$OPTARG";;
\?) echo "无效选项: -$OPTARG" >&2; exit 1;;
:) echo "选项 -$OPTARG 需要参数." >&2; exit 1;;
esac
done
以上代码片段中,我们使用了 getopts
命令来获取附加参数。它有三个参数:
-a
和 -b
选项,就可以设置选项字符串为 ab:
。注意,如果选项需要参数,则在选项后面加上一个冒号。当我们使用脚本时,就可以以以下形式传递命令行参数:
./myscript.sh -a hello -b world
在 getopts
命令中,我们使用了一个 case
语句来解析选项和参数。
如果选项是 -a
或 -b
,我们将相应的参数存储在 $arga
或 $argb
变量中。
如果选项是无效的,则输出错误信息并退出脚本。
如果选项是需要参数的,但是没有提供参数,则同样输出错误信息并退出脚本。
获取附加参数对于编写灵活的Linux脚本非常重要,它可以让我们根据不同的参数执行不同的操作。在Shell-Bash中,我们可以使用 getopts
命令来获取命令行参数,然后使用 case
语句来解析选项和参数。