linux命令如何读取参数
linux命令如何读取参数详细介绍
在 Linux Shell 脚本中,读取命令行参数主要通过位置参数和特殊变量实现,复杂场景下还可通过 getopts 等工具解析带选项的参数(如 -h、-v 等)。以下是具体方法:
一、基础位置参数
脚本运行时,通过 $n 形式获取参数(n 为参数序号):
$1:第一个参数$2:第二个参数- ...
$0:脚本自身名称(或调用的命令名)
示例:
创建脚本 demo.sh 并添加以下内容:
bash
"
"
"
"
"
运行 ./demo.sh hello world,输出:
plaintext
脚本名: ./demo.sh第一个参数: hello
第二个参数: world
所有参数(用空格分隔): hello world
参数总个数: 2
二、特殊变量(常用)
$@:所有参数的列表(可视为数组,每个参数独立)$*:所有参数的字符串(参数间用默认分隔符IFS连接,通常是空格)$#:参数总个数$?:上一条命令的退出状态(0 表示成功,非 0 表示失败)
三、解析带选项的参数(如
-h、
-v)
若需要处理类似 ./demo.sh -v --name "张三" 的复杂参数,可通过 getopts 命令(内置在 bash 中)解析短选项(如 -v),或 getopt 命令(外部工具)解析长选项(如 --name)。
1.
getopts(短选项)
getopts 语法:getopts "选项列表" 变量名
示例(解析 -h、-v、-n 选项):
bash
opt
h
n
? "
"
运行 ./demo.sh -v -n "张三",输出:
plaintext
版本:1.0输入的名称: 张三
2.
getopt(长选项,需外部工具支持)
getopt 支持长选项(如 --help、--version),但语法较复杂,适用于需要更清晰参数的场景(需确保系统安装了 getopt)。
总结
- 简单参数直接用
$1、$2等位置参数读取; - 复杂选项(如
-h、--name)用getopts或getopt解析; - 特殊变量(
$@、$#等)用于参数统计或批量处理。