Shell 脚本是一种为 Shell(命令行解释器)编写的脚本程序。它是一个包含一系列命令的文本文件,这些命令可以是操作系统自带的命令(如ls
、cp
、mv
等),也可以是其他程序或者用户自定义的函数等。通过将多个命令组合在一起,能够自动化地完成复杂的任务,比如系统管理、文件处理、软件部署等诸多任务。
编写shell脚本
新建脚本
在kali中用vim my_shell.sh 建立一个名字为my_shell脚本文件,.sh是shell脚本的后缀。
可以用 #!/bin/bash,#! /bin/dash,#!/bin/sh 这三种都是调用脚本解释器,不论哪调用哪一个最后调用的都是dash
为什么最后调用的都是dash呢?
在定义shell脚本文件的目录下使用ls -l bin/sh 发现最后调用的是dash解释器
我们有三种方式可以运行脚本
./shell脚本.sh
这种方式需要脚本具有可执行权限,没有可执行权限需要加权。利用chmod +x shell脚本.sh 可以赋予可执行权限。
sh shell脚本.sh
sh 不用赋予脚本权限也可也执行
source shell脚本.sh
source 与sh命令差不多,只是source可以高亮出文件权限颜色,比如可执行是绿色,文件夹是蓝色等。
变量声明和定义
在终端直接写入name=“111”代表声明变量
再用echo $name 打印出来声明的变量。
例如:
age=27
echo $age
打印出来的结果为:age=27
变量拼接
例如
echo “My name is $name,and my age is $ageyears old”
打印效果为空。因为后面age与year之间没有空格,$字符将ageyears视为一个变量名,而我们在没有声明这个变量时候,会出现空值。
我们上文声明了age=27
那我们要正确输出值的话,需要把$ageyears修改为$age
echo “My name is $name,and my age is $age old”
或者将变量用双引号或者花括号括起来,让变量和字符串做个区分。
echo “My name is $name,and my age is “$age” years old”
echo “My name is $name,and my age is {$age} years old”
声明变量规则
变量可以由数字、字符串、下划线组成,但不能以数字开头,变量中间不要有空格。
查看定义变量名称
用set命令,例如查找name变量
set | grep name
grep是查找过滤的意思,后面跟着变量名称
删除变量
用 unset 命令
unset name 再次查看
set | grepname 就发现没有这个name变量了。
声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)