Shell脚本

Shell 脚本是一种为 Shell(命令行解释器)编写的脚本程序。它是一个包含一系列命令的文本文件,这些命令可以是操作系统自带的命令(如lscpmv等),也可以是其他程序或者用户自定义的函数等。通过将多个命令组合在一起,能够自动化地完成复杂的任务,比如系统管理、文件处理、软件部署等诸多任务。

编写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)

相关推荐
liulilittle4 分钟前
AF_XDP开发环境(Ubuntu24.04.3)
linux·运维·服务器·ubuntu
学烹饪的小胡桃8 分钟前
WGCAT工单系统操作指南,如何将工单指派给多人处理
linux·运维·服务器·网络·工单系统
AI科技星9 分钟前
统一场论变化的引力场产生电磁场推导与物理诠释
服务器·人工智能·科技·线性代数·算法·重构·生活
liulilittle11 分钟前
Windows WSL部署Ubuntu子系统到其它磁盘上
linux·运维·服务器·网络·windows·ubuntu·wsl
Ydwlcloud14 分钟前
2026年1月云服务器优惠活动全解析:聪明选云的新策略
大数据·服务器·人工智能·云计算
lbb 小魔仙17 分钟前
Linux 安全攻防 2025:从 SELinux 配置到漏洞应急响应全流程
linux·python·安全
易天ETU18 分钟前
2026年光模块市场分析与预见
大数据·运维·网络·人工智能·光模块·光通信
魏波.20 分钟前
华为云(Huawei Cloud)ECS(弹性云服务器)的实例规格名称规范
服务器·华为云
Blossom.11821 分钟前
基于多智能体协作的自动化数据分析系统实践:从单点工具到全流程智能
运维·人工智能·分布式·智能手机·自动化·prompt·边缘计算
Ydwlcloud24 分钟前
2026年1月华为云国际促销活动期间如何省钱?
大数据·服务器·人工智能·华为云·云计算