shell编写——脚本传参与运算
声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
如何向脚本进行传参
像上面这种脚本时如何编写出来的呢?其实就是使用啦几个参数
echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$
参数传递一般为$n
(这里的n
表示数字,可以递增来用,其中的$0比较特殊表示文件名称)
$*
:将参数当作统一的字符串显示出来
$@
:是将每个字符串当作独立的字符串显示
∗ 和 *和 ∗和@的输出结果看起来很相似,实际上并不一样
$#
:代表参数的个数
$?
:查看命令执行状态的,如果显示为0那么命令就是正常执行的,其他数字就是出错了
$$
:查看脚本当前进程id
上面的有些输出结果是空的,是因为没有对其进行传参,先对其进行一个传参
# 给他传一个name参数
┌──(root㉿kali-linux-2024-2)-[/home/parallels/Desktop]
└─# sh s.sh name
执行的文件名是:s.sh
第一个参数是:name
传递的参数作为一个字符串显示:name
传递的参数独立作为每个字符串显示:name
传递到脚本的参数个数是:1
最后命令的退出状态:0
脚本运行的当前进程ID是:1366346
如何同时传入多个参数呢?
这里先修改一下原来的s.sh
echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 第二个参数是:$2
echo 第三个参数是:$3
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$
在此运行一下看看
接下来对其进行传参,其实和刚刚一样,多输入几个就好了。
比如:这里用 1,2,3举例
如何在shell中进行数学运算
shell编程在数学运算的时候是相当麻烦的,比python麻烦很多很多
这里需要用到的是expr
,先看图吧
会发现第一个明显不对,他把原来的一摸一样的输出啦,这是因为读取问题,要改成10 + 5
中间要带空格,而python不用,加减乘除都是这样
在这里会发现进行乘法是只输入*
会报错要进行一个转意\*
除法取余数是要换成%
混合运算时默认的还是遵循先加减后乘除,要改变的话要加括号,并且括号和数字之间要有空格,然后括号要转意
补充:变量和数学运算的联动
对变量赋值的是要带$()
不然只会输出计算式