自动化——shell编程
2024-06-02 21:08:54 2 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
Shell编程是一种用于自动化任务的脚本语言,广泛应用于Unix、Linux和macOS等操作系统。Shell脚本是一种文本文件,包含一系列命令和指令,用于自动化日常任务,如文件管理、系统维护和部署应用等。Shell编程的核心是使用命令、变量、条件语句和循环结构等元素,通过这些元素,可以创建强大的脚本来自动执行复杂任务。Shell编程具有高度的可移植性和灵活性,使得系统管理和自动化变得更加简单和高效。
作者其他创作
大纲/内容
又叫做bash编程
配置/etc/vimrc创建。或。bash文件的时候自动添加说明信息
Windows编辑工具subilne
windows每个文件每行结束符号\\
Linux每个文件每行回车 \
故障现象:Windows写的文件,上传到Linux里无法运行
原因:Windows,Linux中回车符号不同
方案1:不上传文件,直接复制内容
dos(windows)
(to)转换
unix(linux)
方案2:dos2unix命令处理
解决:
故障案例:Windows下面书写脚本,上传到Linux
准备编程环境
Ubuntu或Debian使用bash,不要用sh(指向dash)
子主题
sh/bash
/etc/profile
留着inclode功能,把指定代码内容写入到当前脚本中
change_passwd。sh passwd。txt (passwd=lidao96)
。/source
系统/服务使用
给执行权限并运行
脚本运行方法
命名规则
echo $变量名字
${变量}
金庸新作
使用变量
UID
PATH
LANG
PS1
export命令 /etc/profile
环境变量
脚本的第n的参数
$n
脚本名字
输出使用帮助的时候,输出脚本名字
$0
脚本参数个数
一般用于做判断
仅适用于脚本传参,使用read无法判断
$#
$*
$@
位置
一般与循环使用
取出脚本所有参数 类似于$1$3$2$4$5
说明
0表示正确
非0则表示错误
上一个命令的返回值
与if一起对命令进行判断,检查命令执行是否成功
$?
当前脚本/进程的pid
$$
状态
统计变量长度(字符)
$(#变量)
替换
$(变量/查找/替换)
$(变量#)
$(变量%)
帮助 man bash搜索parameter
$(变量:-默认值) 变量未获未定义,则输出默认值
$(变量:=默认值) 变量为或未定义,责输出并修改变量内容为默认值
变量扩展(变量子串)
特殊变量
变量
oldbiou=666
time=`date +%F`
脚本传参 num=$1 num+$2
read -p ”信息“ 变量
交互式创建变量 read
通过文件创建
赋值
-v
awk
bc
判断是否为数字(整数)
使用正则匹配
expr
let
$(())
$[]
运算
都可以进行计算,支持小数
特点
3选1,对整数进行计算,比如:i++内容
-f
-d
-h/-L
-x
-s
文件
=
!=
-n
zero 空,如果为空则为真
-z
字符串对比
equal等于
-eq
not equal不等于-
-ne
-gt great than大于
-ge
-lt less than小于
-le
比较大小
-a
-o
!
逻辑运算
[[ ~= 正则 ]]
正则
比大小-a &&
逻辑
面试题:[] 与[[]]的区别
条件测试语句(条件表达式)
一种情况()
if[ ] ;thenfi
双分支
两种情况
if [ ] ;thenelsefi
多分支
if [] ;thenelif [ ] ;thenelsefi
if 一般是与[]一起使用,也可以加上命令
if判断
case “变量” in1) 命令 ;;2) 命令;;*) 错误提示esac
服务管理脚本 服务 。sh start|stop|restart|status
软件安装
。。。
菜单
case语句
判断
名字(){}
function (){}
创建
函数名字
使用
函数的第n个参数
函数参数个数
一般用于作判断
函数中几个特殊富豪的含义(传参)
函数所有参数
函数
ss/nestat
telnet
nc
nmap
端口
curl/wget
ping
atop/glances/。。。
脚本中常用检查命令
for name in diaoyongdo命令done
for ((i=1;i<=10;i++))do命令done
for循环
死循环
while read linedodone<wenjian
cat xxxx | while read linedodone
while read多个变量,多个变量与列一一对应
技巧
while读取文件内容
while循环
until循环
循环
ip_array=(10.0.0.61 10.0.0.71 10.0.0.81)
创建格式
echo ${数组名字[元素名字/下标]}
取出单个内容格式
ip_list=(`cat ip.txt`)
批量创建
数组
精确显示过程
注释法
输出关键变量
脚本调试方法
自动化——shell编程
0 条评论
回复 删除
下一页