当前位置:首页 » 硬件·内核·Shell·监测 » getopts

getopts命令

getopts 是 Unix 和 Linux 系统下的一条 shell 命令,用于获取和解析 shell 脚本中的命令行参数。通过 getopts 命令可以方便地处理命令行参数,同时避免了参数顺序和数量不一致的问题。

使用案例:

假设我们有一个名为 myscript.sh 的 shell 脚本,需要通过命令行参数传入两个参数:-f 和 -n,分别代表文件名和行数。我们可以通过 getopts 命令来获取和解析这两个参数:

#!/bin/bash

while getopts "f:n:" opt; do
  case "${opt}" in
    f)
      file="${OPTARG}"
      ;;
    n)
      line="${OPTARG}"
      ;;
    *)
      echo "Usage: myscript.sh [-f file] [-n line]"
      exit 1
      ;;
  esac
done

echo "File: ${file}"
echo "Line: ${line}"

通过 while getopts "f:n:" opt; do 来指定需要接受的参数的格式,其中 f: 和 n: 表示接受参数的方式为 -f 参数后面跟一个参数值,-n 参数同理。接下来通过 case 语句来针对这些参数做出不同的处理,最后输出文件名和行数。

运行脚本并传递参数:

./myscript.sh -f myfile.txt -n 10

输出结果:

File: 
myfile.txt

如果传递的参数格式不正确,比如缺少必须的 -f 参数或 -n 参数,则会输出以下错误信息:

Usage: myscript.sh [-f file] [-n line]