1、参数
$0: 脚本名称,shell本身的文件名
$#: 参数个数,不包括程序本身
$n: 当前脚本的第n个参数($1, $2,....$n-1)
$*: 当前脚本的所有参数
$?: 上一次执行命令后的状态码,0为执行成功,非0是执行失败
$$: shell本身的PID,即脚本运行的当前进程ID号
$UID: 当前用户的ID
2、例子
#!/bin/bash
#打印脚本名称
echo "script name is $0"
#传进来的参数列表
Arguments="$*"
COUNT=1
for arg in $Arguments; do
echo -e "\033[32marg$COUNT = $arg\033[0m"
let COUNT++
done
#参数个数
NUM="$#"
echo "Totol number of arguments: $NUM"
COUNT=1
while [ $COUNT -le $NUM ]
do
echo -e "\033[33mParam$COUNT is ${!COUNT}\033[0m"
let COUNT++
done
${!COUNT}是bash的变量间接引用,用于获取位置参数的值
$ ./compare.sh apple egg boy girl
script name is ./compare.sh
arg1 = apple
arg2 = egg
arg3 = boy
arg4 = girl
Totol number of arguments: 4
Param1 is apple
Param2 is egg
Param3 is boy
Param4 is girl
补充一个vim字符替换:
:【范围】s/查找的字符串/替换的字符串/[标志]
范围:.表示当前行 %表示全文
标注:g是全局替换,c表示确认每次替换
例子:
:%s/cat/dog/g ->全文中替换所有的cat为dog
:3s/cat/dog/g ->只替换第3行的cat为dog
:%s/cat/dog/gc ->确认每次替换
:wq ->保存退出
因篇幅问题不能全部显示,请点此查看更多更全内容