搜索
您的当前位置:首页正文

Shell - 传递给脚本的参数个数和参数列表

来源:筏尚旅游网

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                        ->保存退出

因篇幅问题不能全部显示,请点此查看更多更全内容

Top