在许多的情况下,Shell脚本都需要接受用户的输入,根据用户的输入参数来执行不同的操作。本节内容主要介绍Shell脚本的参数,以及如何在脚本中接收参数。
Shell脚本的参数
从命令行传递给Shell脚本的参数又称为位置参数,这主要是因为Shell脚本会根据参数的位置来接受它们的数据。在Shell脚本的内部,用户可以通过一系列的系统变量来获取参数。这些变量的名字都是固定的,并且简单。下面列出了常用的与参数传递有关的系统变量。
变量名 | 说明 |
---|---|
$n | 表示传递给脚本的第n个参数 |
$# | 命令行参数的个数 |
$0 | 当前脚本的名称 |
$* | 以”参数1 参数2 参数3 …..”的形式返回所有的数据 |
$@ | 以”参数1” “参数2”“参数3” …..”的形式返回所有的数据 |
$? | 保存程序最后一条命令的退出状态 |
注意: 对于包含空白字符或者其他的特殊字符的参数,需要使用单引号或者双引号进行传递。
Shell程序
Shell脚本
#! /bin/bash
echo " $# parameters "
echo ' $@ is' "$@ "
echo ' $* is' "$* "
echo ' parameters $0 is ' "$0"
echo ' parameters $1 is ' "$1"
echo ' parameters $2 is ' "$2"
Shell脚本的运行结果
3 parameters
$@ is a b c
$* is a b c
parameters $0 is 2.sh
parameters $1 is a
parameters $2 is b
Shell脚本的返回值$?
[root@***]# echo $?
0