📜  获取附加参数 linux 脚本 - Shell-Bash (1)

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

获取附加参数 Linux 脚本 - Shell-Bash

在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 命令来获取附加参数。它有三个参数:

  1. 选项字符串,指定可用的选项(例如,如果我们希望我们的脚本接受 -a-b 选项,就可以设置选项字符串为 ab:。注意,如果选项需要参数,则在选项后面加上一个冒号。
  2. 命令行参数数组。
  3. 选项处理的代码块。

当我们使用脚本时,就可以以以下形式传递命令行参数:

./myscript.sh -a hello -b world
解析选项和参数

getopts 命令中,我们使用了一个 case 语句来解析选项和参数。

如果选项是 -a-b,我们将相应的参数存储在 $arga$argb 变量中。

如果选项是无效的,则输出错误信息并退出脚本。

如果选项是需要参数的,但是没有提供参数,则同样输出错误信息并退出脚本。

总结

获取附加参数对于编写灵活的Linux脚本非常重要,它可以让我们根据不同的参数执行不同的操作。在Shell-Bash中,我们可以使用 getopts 命令来获取命令行参数,然后使用 case 语句来解析选项和参数。