- shell脚本的参数语法如下:
$0:代表脚本自身的名字。$n:代表第n个参数,n为一个数字,表示第几个参数。例如,$1就表示第一个参数。$#:代表参数的个数。$*:代表所有参数,将所有参数视为一个整体。$@:也代表所有参数,但是将每个参数独立对待。$?:代表上一个命令的退出状态。如果成功,返回0,否则返回非0值。
例:在设备中循环执行ping命令的脚本
- 无参数脚本ping.sh:
str1="`date +\"%Y%m%d-%H-%M-%S\"`"
echo $str1
str2="${str1}.yaml"
echo $str2
pingFun(){
echo `date +\"%Y%m%d-%H:%M:%S\"`>> $str2
ping -c 10 ${1} >> $str2
echo $?>> $str2
}
int=1
#while(( $int<=5 ))
while true
do
pingFun "www.baidu.com"
sleep 3
let "int++"
done
在终端窗口运行脚本:./ping.sh
- 将ping的地址修改为可传参数脚本ping.sh:
str1="`date +\"%Y%m%d-%H-%M-%S\"`"
echo $str1
str2="${str1}.yaml"
echo $str2
pingFun(){
echo `date +\"%Y%m%d-%H:%M:%S\"`>> $str2
ping -c 10 ${1} >> $str2
echo $?>> $str2
}
int=1
#while(( $int<=5 ))
while true
do
pingFun "$1"
sleep 3
let "int++"
done
在终端窗口运行脚本:./ping.sh www.baidu.com
- 停止运行shell脚本
-
如果您在终端窗口中直接运行脚本,您可以使用
Ctrl+C终止它。 -
如果您知道运行脚本的进程ID,您可以使用
kill命令停止它。例如,如果进程ID是1234,您可以运行以下命令:kill 1234 -
如果常规的
kill命令无法停止进程,您还可以使用-9选项强制结束:kill -9 1234 -
如果您不知道进程ID,但知道脚本的名称,您可以使用
pkill命令配合脚本名。例如,如果脚本名称是myscript.sh:pkill -f myscript.sh -
如果您在后台运行脚本并记录了作业ID,您也可以使用
kill命令以及百分号加作业ID的形式来结束它。例如,如果作业ID为1,可以运行以下命令:kill %1