shell脚本学习笔记

shell环境变量

# 简单的变量介绍
lenn@DESKTOP-AEE32JA:~$ a=10
lenn@DESKTOP-AEE32JA:~$ echo $a
10

系统变量

系统变量主要是用于参数判断和命令返回值判断,有以下系统环境变量:

变量名变量值
0当前脚本的名称
n当前脚本第n个参数
*当前脚本所有参数,不包括脚本本身
#当前脚本参数个数,不包括脚本本身
?命令或程序执行完后的状态,0表是成功
$程序本省的PID号

编写以下脚本获得输出:

echo $0
echo $1
echo $2
echo $*
echo $#
echo $?
echo $$lenn@DESKTOP-AEE32JA:~$ ./sys.sh 123 "123"
./sys.sh
123
123
123 123
2
0
4913

系统环境变量

变量名变量值
PATH命令所示路径,以冒号分割
HOME用户家目录
SHELL当前 shell 类型
USER当前用户名
ID当前用户 id 信息
PWD当前所在路径
TERM当前终端类型
HOSTNAME主机名
PS1
HISTSIZE
RANDOM随机生成一个0~32767 的整数

用户环境变量

用户变量又称为局部变量,主要用在 shell 脚本内部或者临时局部使用,比如:

A=10
BACK_DIR=/home/user/back
IPADDR=127.0.0.1

shell 流程控制

if 条件语句

if [ condition ]; then# 如果条件为真,则执行的命令
elif [ another_condition ]; then# 如果另一个条件为真,则执行的命令
else# 如果所有条件都不满足,则执行的命令
fi

举例

#!/bin/bashnumber=$1  # 从命令行参数获取数字if [ $number -gt 0 ]; thenecho "$number 是正数"
elif [ $number -lt 0 ]; thenecho "$number 是负数"
elseecho "$number 是零"
fi
if 常见判断逻辑运算符

数值比较运算符

运算符全称意思
-eqequal等于
-ngnot equal不等于
-gtgreater than大于
-ltless than小于
-gegreater than or equal to大于等于
-leless than or equal to小于等于

其他逻辑运算符

运算符作用
-f判断文件是否存在 if [-f filename]
-d判断目录是否存在 if [-d dir]
-a双方都成立
-o单方成立
-z空字符串
-x是否具有可执行权限
&&双方都成立
案例:判断 code-server 进程是否再运行
#!/bin/bash
name=code-server
num=$(ps -ef | grep $name | grep -vc grep)
if [ $num -eq 1 ];thenecho "$num running!"
elseecho "$num is not running!"
fi
案例:判断目录是否存在
#!/bin/bash
if [! -d /opt/code-server -a ! -d /tmp/code-server];thenmkdir -p /opt/code-server
fi
案例:按照人数判断规模
#!/bin/bashnum=$1if [ $num -gt 500 ];thenecho "big company!"
elif [ $num -gt 100 ];thenecho "mid company!"
elif [ $num -gt 20 ];thenecho "small company!"
elseecho "unlaw num!"
fi

for 循环语句

for 变量名 in 取值列表; do语句 1
done
案例:检查主机状态
#!/bin/bashnetwork=$1
for Host in $(seq 1 254);doping -c 1 $network.$Host > /dev/null && result=0 || result=1if [ $result -eq 0 ];thenecho -e "\033[32;1m$network.$Host is up \033[0m"
elseecho -e "\033[;31m$network.$Host is down \033[0m"
fidone

while 循环

while  (表达式)
do
语句1
done
break 和 continue 语句
# break 和 continue 语句break 是终止循环。continue 是跳出当前循环。
#示例 1:在死循环中,满足条件终止循环
while true; dolet N++if [ $N -eq 5 ]; thenbreak
fiecho $N
done
输出: 1 2 3 4#示例 2:举例子说明 continue 用法
N=0
while [ $N -lt 5 ]; dolet N++
if [ $N -eq 3 ]; thencontinue
fiecho $N
done输出: 1 2 4# 打印 1-100 数字
i=0
while ((i<=100))
doecho  $ii=`expr $i + 1`
done
案例:求 1-100 的总和
#!/bin/bashj=0
i=1
while ((i<=100));doj=`expr $i + $j`((i++))
done
echo $j

参考资料:https://it.0voice.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/16656.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

VRRP HSRP GLBP 三者区别

1. VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由冗余协议&#xff09; 标准协议&#xff1a;VRRP 是一种开放标准协议&#xff08;RFC 5798&#xff09;&#xff0c;因此支持的厂商较多&#xff0c;通常用于多种网络设备中。主备模式&#xff1a;…

VMware 17虚拟Ubuntu 22.04设置共享目录

VMware 17虚拟Ubuntu 22.04设置共享目录 共享文件夹挂载命令&#xff01;&#xff01;&#xff01;<font colorred>配置启动自动挂载Chapter1 VMware 17虚拟Ubuntu 22.04设置共享目录一、卸载老版本二、安装open-vm-tools<font colorred>三、配置启动自动挂载四、添…

二叉树Golang

二叉树 前言 完全二叉树 最底层节点按顺序从左到右排列。 满二叉树 一颗二叉树只有0度和2度的节点。 二叉搜索树 左子树上的所有节点的值均小于根节点的值。右子树上的所有节点的值均大于根节点的值。 平衡二叉搜索树 左右两个子树的高度差的绝对值不超过1 。 二叉树的存储…

【鸿蒙开发】第十三章 ArkTS基础类库-容器(数据结构)

目录 1 容器简述 2 线性容器 2.1 ArrayList 2.2 Vector 2.3 List 2.4 LinkedList 2.5 Deque 2.6 Queue 2.7 Stack 2.8 线性容器的使用 3 非线性容器 3.1 HashMap 3.2 HashSet 3.3 TreeMap 3.4 TreeSet 3.5 LightWeightMap 3.6 LightWeightSet 3.7 PlainArray…

3D电子商务是什么?如何利用3D技术提升销售转化?

在数字化浪潮席卷全球的今天&#xff0c;网上购物已成为消费者日常生活中不可或缺的一部分。然而&#xff0c;尽管其便捷性无可比拟&#xff0c;但传统电商模式中的“看不见、摸不着”问题始终困扰着消费者与商家。商品是否符合期望、尺寸是否合适、颜色是否真实……这些不确定…

腾讯地图GL JS点标识监听:无dragend事件的经纬度获取方案

引入腾讯地图SDK <!--腾讯地图 API--><script charset"utf-8" src"https://map.qq.com/api/gljs?librariestools&v1.exp&key***"></script>构建地图容器 <div class"layui-card"><div class"layui-car…

基于SpringBoot+RabbitMQ完成应⽤通信

前言&#xff1a; 经过上面俩章学习&#xff0c;我们已经知道Rabbit的使用方式RabbitMQ 七种工作模式介绍_rabbitmq 工作模式-CSDN博客 RabbitMQ的工作队列在Spring Boot中实现&#xff08;详解常⽤的⼯作模式&#xff09;-CSDN博客作为⼀个消息队列,RabbitMQ也可以⽤作应⽤程…

3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用)

3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用) 文章目录 3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用)前言1. Spring Cloud Eureka 的概述1.1 服务治理概述1.2 服务注册与发现 2. 实践&#xff1a;创建单机 Eureka Server 注册中心2.1 需求说明 图解…

2024年11月第2个交易周收盘总结

计划自己的交易&#xff0c;交易自己的计划! 跟随市场而情绪波动&#xff0c;最终一定会导向失败&#xff01;连续、平稳、冷静地惯彻交易计划&#xff0c;比什么都重要&#xff01; 交易本身是极其简单和清楚的&#xff0c;让事情变复杂的原因不是行情走势和交易本身&#x…

一种时间戳对齐的方法(离线)

这段代码的主要功能是: 读取指定目录下的 pcd 文件和 jpg 文件。对于每个 pcd 文件,在 jpg 目录中找到时间戳最接近的 jpg 文件。将找到的 jpg 文件复制到对应的输出目录,实现时间戳对齐。 这种时间戳对齐的操作在多传感器数据融合中非常常见,它确保了不同传感器采集的数据在时…

【数据分享】全国农产品成本收益资料汇编(1953-2024)

数据介绍 一、《全国农产品成本收益资料汇编 2024》收录了我国2023年主要农产品生产成本和收益资料及 2018年以来六年的成本收益简明数据。其中全国性数据均未包括香港、澳门特别行政区和台湾省数据。 二、本汇编共分七个部分,即:第一部分,综合;第二部分,各地区粮食、油料;第…

SQL 处理数列

在关系模型的数据结构中&#xff0c;并没有“顺序”这一概念。因此&#xff0c;基于它实现的关系数据库中的表和视图的行和列也必然没有顺序。 1 处理数列 1.1 实践 1.1.1 生成连续编号 图 t_num 数据库源与目标视图v_seq 需求&#xff1a;根据0~9 这10个数&#xff0c;生成…

【云原生系列--Longhorn的部署】

Longhorn部署手册 1.部署longhorn longhorn架构图&#xff1a; 1.1部署环境要求 kubernetes版本要大于v1.21 每个节点都必须装open-iscsi &#xff0c;Longhorn依赖于 iscsiadm主机为 Kubernetes 提供持久卷。 apt-get install -y open-iscsiRWX 支持要求每个节点都安装 N…

编写情绪K线指标(附带源码下载)

编写需求&#xff1a; 很多交易者抱怨&#xff0c;传统的跟踪类指标常常存在滞后的问题&#xff0c;而预测类指标又常常不够可靠。那么&#xff0c;是否存在一种指标&#xff0c;能够精准地反映当前K线的强弱变化&#xff0c;并且具备高度的时效性呢&#xff1f; 效果展示&am…

16、pxe自动装机

pxe自动装机的组成 pxe&#xff1a;自动安装系统必要的运行环境 无人值守&#xff1a;为系统定制化的安装需要的软件 pxe的优点 规模化&#xff1a;同时装配多台服务器&#xff08;20-30&#xff09; 自动化&#xff1a;系统安装和服务配置不需要人工干预 远程实现&#x…

H.265流媒体播放器EasyPlayer.js网页直播/点播播放器WebGL: CONTEXT_LOST_WEBGL错误引发的原因

EasyPlayer无插件直播流媒体音视频播放器属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;无须安装任何插件&#xff0c;起播快、延迟低、兼容性强&#xff0c;使用非常便捷。 EasyPlayer.js能够同时支持HTTP、HTTP-FLV、HLS&a…

Javaweb开发核⼼心之玩转Servlet4(笔记)

javaweb开发核⼼心之玩转Servlet4.0 简介&#xff1a;什么是Servlet-开发你的第⼀一个动态⽹网站 什么是Servlet 简介&#xff1a;是JavaServlet的简称&#xff0c;⽤用Java编写的运⾏行行在Web服务器器或应⽤用服务器器上的程序,具有独⽴立于平台和协议的特性, 主要功能在于交…

VUE实现通话:边录边转发送语言消息、 播放pcm 音频

文章目录 引言I 音频协议音频格式:音频协议:II 实现协议创建ws对象初始化边录边转发送语言消息 setupPCM按下通话按钮时开始讲话,松开后停止讲话播放pcm 音频III 第三库recorderplayer调试引言 需求:电台通讯网(电台远程遥控软件-超短波)该系统通过网络、超短波终端等无线…

无人机遥控器基础讲解——CKESC电调小课堂08

无人机遥控器是控制无人机飞行的重要设备&#xff0c;以下是对其的详细介绍&#xff1a; CKESC-专业级电调研发生产供应商http://www.ckesc.com 一、外观与布局 1. 通常由两个摇杆、多个功能按钮、一个显示屏和天线组成。 2. 摇杆一般位于遥控器的中央位置&#xff0c;用于控…

谷歌新作:Unbounded开放世界RPG,AI定义无限游戏新纪元

在开放世界和角色扮演游戏的领域里&#xff0c;玩家们总是渴望着那种无拘无束的自由体验。他们梦想着一个没有空气墙阻隔&#xff0c;没有剧情杀限制&#xff0c;没有任何交互限制的游戏世界。现在&#xff0c;这个梦想可能即将成真。谷歌联合北卡罗来纳大学教堂山分校推出的Un…