1、一些常见参数的含义:
$n $1 表示第一个参数,$2 表示第二个参数 ...
$# 命令行参数的个数$0 当前程序的名称
$? 前一个命令或函数的返回码,返回0代表成功
$* 以"参数1 参数2 ... " 形式保存所有参数,是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$@ 以"参数1" "参数2" ... 形式保存所有参数,是传给脚本的所有参数的列表
$$ 本程序的(进程ID号)PID
2、如何从命令行传参数给脚本
一个常用的搜索脚本
#!/bin/sh
OPT=$1
find . \( -path ./.git -o -path out/ \) -prune -o -name "*" | xargs grep "$OPT" --color=auto
在命令行界面执行./find.sh XXX即可,其中XXX代表第一个参数也就是OPT=$1。
3、判断输入参数的个数
#!/bin/sh
if [ $# -ne 1 ];
then
echo "Usage: $0 filename";
exit -1
fi
OPT=$1
find . \( -path ./.git -o -path out/ \) -prune -o -name "*" | xargs grep "$OPT" --color=auto
注意if[] 的空格分布if [空格$# -ne 1空格];,如果运行脚本出现[: 7: missing ],可能是缺少空格