声明!!!
学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章
视频链接:泷羽sec
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
# 向脚本程序传参
脚本如下:
echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$
可以向脚本程序中传递一个或者多个参数,脚本中的**$1
,里面的数字是可以依次递增的,比如$1,$2,$3
等等,其中的$0
**(比较特殊标识文件名称)
用vim写入脚本1.sh,在利用**sh 1.sh
**执行文件,查看执行结果
第一个参数为空,我们指定一个参数name
sh 1.sh name
指定第二个和第三个参数
修改脚本
echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 第一个参数是:$2
echo 第一个参数是:$3
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$
运行脚本
sh 1.sh 1 2 3
总结
参数传递一般为 n ( 表示数字,可递增 ) , ∗ ∗ ‘ n(表示数字,可递增),**` n(表示数字,可递增),∗∗‘***就是将参数当做统一的字符串显示出来,而$@是将每个字符串当作独立的字符串显示,这也是**
∗ ‘ ∗ ∗ 和 ∗ ∗ ‘ *`**和**` ∗‘∗∗和∗∗‘@**的区别,**
KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲`**代表参数的个数,**`?**是查看命令执行状态的,如果显示为0,那么命令就是正常执行的,其他数字就是出错了,**
$$`**就是查看脚本当前进程id的。
在shell编程中进行数学运算
shell编程在数学运算的时候是相当麻烦的,python中的数学运算可能简单点
加减法
expr 5 + 10 #5(空格)+(空格)
乘法
expr 6 \* 6 #要用\进行转义
取整
expr 6 / 6
取余
expr 6 % 6
混合运算
shell会按照先乘除后加减运算,如果有括号要用**\
**进行转义
expr \( 5 + 7 \) / 2
运算与变量结合
result=$(expr 5 + 110)
echo $result