Bash脚本输入参数的使用
Bash脚本传入的参数,在脚本中以位置的形式进行访问,即 $n 。例如,$1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数。另外Bash中还提供了一些其它的便捷操作以符号的形式表现。具体内容和含义见下表:
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数,如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数,如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
事例代码如下:
# !/usr/bin/env bash
# -*- coding: utf-8 -*-
#
# 打印输入的参数
#
if [[ $#<=0 ]]; then
echo "command=>$0, no parameters"
exit 1
fi
echo $@
pos=1
for para in "$@"; do
eval val=$(echo \$${pos})
echo "command=>$0, position=>${pos}, value=>${val}"
echo $(( pos++ )) >/dev/null
done
上述代码执行结果如下: