Linux脚本初学记录(1)

时间:2021-10-22 00:01:58

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 ],可能是缺少空格