Bash:
读取命令行参数

How to: 如何做?

#!/bin/bash
# 保存第一个和第二个命令行参数到变量
first_arg=$1
second_arg=$2

# 打印参数
echo "第一个参数: $first_arg"
echo "第二个参数: $second_arg"

保存此脚本为 example.sh 并运行:

bash example.sh 苹果 香蕉

输出:

第一个参数: 苹果
第二个参数: 香蕉

Deep Dive: 深入探索

Bash 是在1989年作为GNU计划的一部分诞生的,最初是为了代替Bourne Shell。在处理命令行参数方面,它使用位置参数($0, $1, …,其中$0是脚本本身的名称,$1是第一个参数,以此类推)。

除了直接使用位置参数,Bash 还提供了getoptsshift命令用于更复杂的参数解析。getopts 主要用于短选项,而使用 getopt 命令可以支持长选项解析。

具体到实现,Bash脚本参数是通过特殊的环境变量(位置参数)暴露给脚本的。$#表示参数总数,$*$@代表所有参数的列表,但在双引号中展开时有所不同,$*会将所有参数视为一个单一字符串而$@会保留每个参数作为独立字符串。

See Also: 参见