shell脚本命令

最后更新日期:2024-03-21

文章目录

  • 一、echo
  • 二、特殊变量
    • 1、$n
    • 2、$#
    • 3、$*
    • 4、$@
    • 5、$?
  • 三、运算符
    • 1、expr
    • 2、$[n+n]
  • 三、条件判断
    • 1、[ condition ]
    • 2、&&
    • 3、||
  • 四、流程控制
    • 1、if
    • 2、case
    • 3、for
    • 4、while
  • 五、read读取控制台输入

一、echo

  • 打印变量
#! /bin/bash

a=1					#所有变量均为字符串,a=1中间不能有空格
echo $a				#输出 1
echo ${a}			#输出 1
echo '$a'			#输出 $a
echo '${a}'			#输出 ${a}

二、特殊变量

1、$n

  • 获取输入参数
#! /bin/bash

echo $1,$2,$3		

#执行程序
./test.sh 1 2 3		 #输出 1,2,3

2、$#

  • 获取输入参数个数
#! /bin/bash

echo $#		

#执行程序
./test.sh 1 2 3		 #输出 3

3、$*

  • 获取整体的输入参数。参数是分离的,比如可以使用for循环读取
#! /bin/bash

echo $*		

#执行程序
./test.sh 1 2 3		 #输出 1 2 3

4、$@

  • 获取整体的输入参数
#! /bin/bash

echo $@		

#执行程序
./test.sh 1 2 3		 #输出 1 2 3

5、$?

  • 获取最后一次执行的命令的返回结果,0代表上一次命令执行正确,非0则不正确
#! /bin/bash

echo $?		

#执行程序
echo 1
./test.sh		 	#输出 0

三、运算符

1、expr

#! /bin/bash

expr 1 + 3			#中间必须有空格		

#执行程序
./test.sh		 	#输出 4

2、$[n+n]

  • 基本运算
#! /bin/bash

a=2
b=3
echo $[$a+$b]		

#执行程序
./test.sh		 	#输出 5

三、条件判断

1、[ condition ]

  • 条件成立返回0,失败返回非0
  • 括号中间必须有空格
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
0

2、&&

  • 与运算,两者成立返回0,否则返回非0
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ] && [ 20 -eq 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
1

3、||

  • 或运算,其中一个条件成立返回0,都不成立返回非0
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ] || [ 20 -eq 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
0

四、流程控制

1、if

  • 语法:
# if后面要有空格,中括号中间要有空格
# 写法1:
if [ condition ];then
	...
elif [ condition ];then
	...
fi

# 写法2:
# then换行写,中括号后面就不用分号
if [ condition ]
then
	...
elif [ condition ]
then
	...
fi
  • 例子:
#! /bin/bash

if [ $1 -eq 1 ]
then
        echo 1
elif [ $1 = 2 ]
then
        echo 2
fi

2、case

  • 语法:
case $变量名 in
"值1")
	...
;;
"值2")
	...
;;
*)
	...
;;
esac
  • 例子:
#! /bin/bash

case $1 in
"1")
        echo 1
;;

"2")
        echo 2
;;

*)
        echo 100
;;
esac

3、for

  • 语法:
# 写法1:
for(( 初始值;循环控制条件;变量变化 ))
do
	...
done

# 写法2:
for in 值1 值2 值3
do
	...
done
  • 例子:
# 例子1:

#! /bin/bash
s=0
for((i=1; i<=100; i++))
do
        s=$[ $s + $i ]
done:
echo $s

# 例子2:

#! /bin/bash
for i in $*
do
        echo $i
done

4、while

  • 语法:
while [ condition ]
do
	...
done
  • 例子
#! /bin/bash

i=1
s=0
while [ $i -le 100 ]
do
        s=$[ $s + $i ]
        i=$[ $i + 1 ]
done
echo $s

五、read读取控制台输入

  • read(选项)(参数)
  • 选项:
    • -p:输入提示符
    • -t :等待读取值的时间
  • 参数:
    • 变量:读取输入的值存放到变量
#! /bin/bash

read -t 7 -p "press any key to continue: " KEY
echo $KEY

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s安装详细教程1

环境初始化 1、检查操作系统的版本 Last login: Mon Mar 18 08:57:10 2024 [rootcontroller ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootcontroller ~]# vi /etc/hosts2、时间同步 kubernetes要求集群中的节点时间必须精确一直&#xff0c;这里…

32.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-网络数据分析原理与依据

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;31.其它消息的实…

除了Confluence,有没有其他工具一样好用?

每个团队都需要一个协同工作工具&#xff0c;以更有效地管理任务、跟踪进度和分享知识。这就是Atlassian的Confluence发挥作用的地方。然而&#xff0c;尽管它相当强大&#xff0c;其昂贵的价格和复杂的界面可能会让某些用户望而却步。所以&#xff0c;还有其他工具可以替代Con…

Markdown快速入门(常用技巧)

目录 说明常用书写技巧1.标题分级2.代码块3.字体4.引用语法5.分割线6.图片插入(本地/网络&#xff09;7.超链接8.列表9.表格10.换行&#xff08;两个空格&#xff09;11.插入公式12.脚注 说明 markdown实际上类似于网页&#xff0c;可以根据喜欢设置其样式变化&#xff0c;创建…

多模态开源大模型

感知类总榜单&#xff0c;是将各项感知任务综合起来的总评分&#xff0c;显示是BLIP-2最高&#xff1a; 认知类总榜单&#xff0c;则是各种涉及认知类任务的榜单&#xff0c;加起来是MiniGPT-4最高&#xff1a; 一、LLaVA-1.5&#xff08;浙大实验室》&#xff1a;LLaVA 二、…

如何修复WordPress网站媒体库上传文件失败的问题

公司最近推出了一系列新产品&#xff0c;为了更新网站的视频和图片&#xff0c;我们需要将它们上传至网站媒体库。然而&#xff0c;在上传视频时&#xff0c;我们却遇到了一些问题。系统提示说&#xff0c;我们尝试上传的视频文件大小超出了站点的最大上传限制。尽管我们的视频…

实战whisper第二天:直播语音转字幕(全部代码和详细部署步骤)

直播语音实时转字幕&#xff1a; 基于Whisper的实时直播语音转录或翻译是一项使用OpenAI的Whisper模型实现的技术&#xff0c;它能够实时将直播中的语音内容转录成文本&#xff0c;甚至翻译成另一种语言。这一过程大致分为三个步骤&#xff1a;捕获直播音频流、语音识别&#x…

【嵌入式——QT】QT Charts

【嵌入式——QT】QT Charts 概述Qt提供的坐标轴类QChartQLineSeriesQValueAxis常见图表及用到的序列类图示代码示例 概述 QT Charts模块是一组易于使用的图表组件&#xff0c;它基于Qt的Graphics View架构&#xff0c;其核心组件是QChartView和QChart&#xff0c;QChartView父…

前端开发经验分享:写页面时总是有预期之外的滚动条怎么办?

问题描述&#xff1a; 在制作一个页面时常常会出现一些预期之外的滚动条&#xff0c;一般有以下原因&#xff1a;1.内容过多&#xff1a;当容器内的内容&#xff08;如文本、图片等&#xff09;的总高度或总宽度超过容器的可视区域时&#xff0c;滚动条就会出现。2.样式设置&a…

一维前缀和一维差分(下篇讲解二维前缀和二维差分)(超详细,python版,其他语言也很轻松能看懂)

本篇博客讲解一维前缀和&#xff0c;一维差分&#xff0c;还会给出一维差分的模板题&#xff0c;下篇博客讲解 二维前缀和&二维差分。 一维前缀和&#xff1a; 接触过算法的小伙伴应该都了解前缀和&#xff0c;前缀和在算法中应用很广&#xff0c;不了解也没有关系&#…

基于SSM的中国旅游网站管理系统+数据库+数据库表结构文档+免费远程调试

项目介绍&#xff1a; Javaee项目&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMvc Mybatis JspBootstrap来实现。MySQL数据库作为系统数据储存平台&#xff…

阻止默认行为 e.preventDefault()搭配passive:false才有效

正确情况 如果想阻止默认行为,那么 e.preventDefault()搭配passive:false才是正解 document.addEventListener(touchmove,(e)>{ e.preventDefault() console.log(123,123);},{passive:false}) 如果搭配 passive:false,则会报警告 e.preventDefault()搭配passive:true会报…

php 对接Vungle海外广告平台收益接口Reporting API

今天对接的是Vungle广告reporting api接口&#xff0c;拉取广告收益回来自己做统计。记录分享给大家 首先是文档地址,进入到Vungle后台就能看到文档地址以及参数&#xff1a; 文档地址&#xff1a;https://support.vungle.com/hc/en-us/articles/211365828-Publisher-Reporting…

线程池实现“线程复用”的原理

线程池实现“线程复用”的原理 学习线程复用的原理&#xff0c;以及对线程池的 execute 这个非常重要的方法进行源码解析。 线程复用原理 我们知道线程池会使用固定数量或可变数量的线程来执行任务&#xff0c;但无论是固定数量或可变数量的线程&#xff0c;其线程数量都远远…

3.3网安学习第三阶段第三周回顾(个人学习记录使用)

本周重点 ①渗透测试介绍 ②sqlmap注入扫描工具 ③XSS脚本注入 本周主要内容 ①渗透测试介绍 一、渗透测试 通过模拟黑客对系统进行攻击的手段或技术&#xff0c;在被测系统中发现漏洞的行为。除了提供漏洞之外&#xff0c;还需提供安全意见。 与黑站不同&#xff0c;渗…

Vue响应式原理全解析

前言 大家好&#xff0c;我是程序员蒿里行。浅浅记录一下面试中的高频问题&#xff0c;请你谈一下Vue响应式原理。 必备前置知识&#xff0c;​​Vue2​​官方文档中​​深入响应式原理​​​及​​Vue3​​官方文档中​​深入响应式系统​​。 什么是响应式 响应式本质是当…

RabbitMQ集群部署

集群部署 我们看看如何安装RabbitMQ的集群。 1.集群分类 在RabbitMQ的官方文档中&#xff0c;讲述了两种集群的配置方式&#xff1a; 普通模式&#xff1a;普通模式集群不进行数据同步&#xff0c;每个MQ都有自己的队列、数据信息&#xff08;其它元数据信息如交换机等会同…

基于Android的Appium+Python自动化脚本编写

1.Appium Appium是一个开源测试自动化框架&#xff0c;可用于原生&#xff0c;混合和移动Web应用程序测试&#xff0c; 它使用WebDriver协议驱动iOS&#xff0c;Android和Windows应用程序。 通过Appium&#xff0c;我们可以模拟点击和屏幕的滑动&#xff0c;可以获取元素的id…

动态规划(算法竞赛、蓝桥杯)--单调队列优化DP琪露诺

1、B站视频链接&#xff1a;E46 单调队列优化DP 琪露诺_哔哩哔哩_bilibili 题目链接&#xff1a;琪露诺 - 洛谷

自定义类型--结构体、联合体、枚举类型

**Ladies and gentlemen**&#xff0c;今天&#xff0c;我们将来进行对自定义类型的学习&#xff01; 目录 1.结构的特殊声明2. 结构体内存对齐2.1 对齐规则2.1.12.1.22.1.32.1.4 2.2 为什么存在内存对齐?1. 平台原因 (移植原因)&#xff1a;2. 性能原因&#xff1a; 2.3 修改…