Linux学习(三)shell编程

1.echo指令

用于将后面的字体内容回显到控制台,将后面的字体用单引号或双引号引起来都会忽略引号


2.expr数学运算


3.第一个shell脚本

一般shell脚本以.sh为后缀,通过sh命令来执行shell脚本。


4.shell脚本的命令行参数

$1 $2 $3 $4 $5 $6 $7 $8 $9 $0 ,$0为它自己执行的命令,该参数类似于占位符

$#为计算命令行参数的个数,在C语言中为argc-1

$占位在C语言中就是argv

$*为所有的命令行参数

参数详解:

Shell 传递参数 | 菜鸟教程 (runoob.com)


5.shell脚本if语句和循环

用read来输入变量值,shell脚本中变量不需要声明,可直接使用。

输出30

expr(evaluate expressions的缩写)。"表达式求值"。

n=10
m=20
x=$(expr $n + $m)
echo $x
n=10
m=20
x=$(expr $n + $m)
echo $x
let "x+=1"
echo $x

输出31

获取计算的结果赋值给新变量的语法

可以使用$()和 两个反撇好”``“  表示。


计算字符串的长度语法

语法:expr length


 截取字符串语法

语法:expr substr ”字符串“ start end

#start 截取字符串的起始位置,从1开始(注意编号从一开始,而不是0开始)

#end截取字符串的结束位置,包含这个位置也被截取


获取一个字符在字符串中第一次出现的位置

语法:expr index 被查找的字符串  需要查找的字符


正则表达式匹配1语法


语法: expr match  字符串  正则表达式

#正则表达式默认带有“^”,表示已什么开头

#返回值为符合,匹配字符长度,否则返回0

#正则表达式“."(点)代表任意一个字符

#正则表达式中通配符“*”(星号)代表前面的字符可以出现0次到多次

#“.*m”(点心m):匹配字符串中m前面的字符串长度(以任意长度字符开头到m结束且包含m,匹配m之前的长度。得出匹配字符串的长度)


正则表达式匹配2语法,功能和1一样,语法比1简单


语法:expr 字符串 :正则表达式

#正则表达式默认带有“^”,表示已什么开头

#返回值为符合,匹配字符长度,否则返回0

 


 bc软件提供的互动式数学计算

语法一(作为系统计算器使用)

格式:bc [选项] [参数]


内置变量

scale :指定精度,对计算结果指定保留小数;默认为0,即不使用小数部分只保留整数位。


将bc计算的结果赋值给shell变量 
第一种方式:

A=$(echo "表达式" | bc [选项])

第二种方式:反引号

A=`echo "表达式" | bc [选项]`   

两种方式区别:``反引号是所有linux系统支持的方式。兼容性较好,但是容易与引号产生混淆

$()不是所有linux系统都支持的方式。兼容性较差,但是不容易产生混淆


bc在shell中进行非互动式的输入重定向运算


1、作用
 将计算表达式输出给bc去执行,特点类似于文件中输入,可以输入多行表达式,更加清晰

2、语法
第一种方式:

A=`bc << EOF

第一行表达式

第二行表达式

第三行表达式

......................

EOF

` (反引号结束)

第二种方式:

A=$(bc << EOF

第一行表达式

第二行表达式

第三行表达式

......................

EOF

) 括号结束

以上部分内容出自shell中计算命令详解(expr、(())、 $[]、let、bc )_shell 计算-CSDN博客

 


6.shell脚本中数学运算总结


7.shell脚本中判断语句

语法:

if test ...

then 

else 

fi

#shell判断语句
n=10
m=10
if test $n -eq $m
thenecho "$n==$m"
elseecho "$n!=$m"
fi
echo "结束"

8.shell脚本中循环语句

for((i=0;i<10;i++)){echo hello linux}

也可以用

do

done

来表示循环开始语句与结束语句

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DDD】学习笔记-值对象

值对象通常作为实体的属性而存在&#xff0c;也就是亚里士多德提到的数量、性质、关系、地点、时间与形态等范畴。正如 Eric Evans 所说&#xff1a;“当你只关心某个对象的属性时&#xff0c;该对象便可做为一个值对象。为其添加有意义的属性&#xff0c;并赋予它相应的行为。…

day42 一个极简动画效果(复习相关属性)

<!DOCTYPE html> <html><head><title>动画页面</title><style>body {font-family: Arial, sans-serif;background-color: #f2f2f2;margin: 0;padding: 0;}.container {max-width: 800px;margin: 0 auto;margin-top: 100px;padding: 20px;b…

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux

目录 一、互斥锁基本概念二、互斥锁运行机制三、互斥锁开发流程四、互斥锁使用说明五、互斥锁接口六、代码分析&#xff08;待续...&#xff09; 一、互斥锁基本概念 互斥锁又称互斥型信号量&#xff0c;是一种特殊的二值性信号量&#xff0c;用于实现对共享资源的独占式处理。…

17.3.1.2 曝光

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 基本算法&#xff1a;先定义一个阈值&#xff0c;通常取得是128 原图像&#xff1a;颜色值color&#xff08;R&#xff0c;G&#…

读十堂极简人工智能课笔记03_遗传算法与进化

1. 寻找正确答案 1.1. 卡尔西姆斯 1.1.1. 计算机图形艺术家和研究者 1.1.2. 演示过数字进化之创造性和新颖性的先驱 1.1.3. 1994年 1.1.3.1. 创造一批能游泳、走路、跳跃&#xff0c;甚至互相竞争的虚拟动物震惊了整个科学界 1.1.3.2. 它们的人工大脑却是个极其复杂的网络…

EXCEL中如何调出“数据分析”的菜单

今天发现&#xff0c;原来WPS还是和EXCEL比&#xff0c;还是少了“数据分析”这个日常基本做统计的菜单&#xff0c;只好用EXCEL了&#xff0c;但奇怪发现我的EXCEL中没发现这个菜单&#xff0c;然后查了下&#xff0c;才发现&#xff0c;要用如下的方法打开&#xff1a; 1&…

效果炸裂!OpenAI首个视频生成模型发布,1分钟流畅高清,网友:整个行业RIP

刚刚&#xff0c;奥特曼发布OpenAI首个视频生成模型Sora。 完美继承DALLE 3的画质和遵循指令能力&#xff0c;能生成长达1分钟的高清视频。 AI想象中的龙年春节&#xff0c;红旗招展人山人海。 有紧跟舞龙队伍抬头好奇官网的儿童&#xff0c;还有不少人掏出手机边跟边拍&…

B3657 [语言月赛202209] 公园门票

题目描述 小 A 一家人一起来逛公园&#xff0c;门票价目表如下&#xff1a; 小 A 家里共有 x 个成人&#xff0c;y 个儿童&#xff0c;请问至少需要花费多少钱购买门票。 输入格式 共一行&#xff0c;包含两个数字 x 和 y&#xff0c;表示小 A 家里共有 x 名成人&#xff0c…

智慧供应链控制塔大数据解决方案

一、供应链控制塔的概念定义 (1) Gartner 的定义: “控制塔是一个物理或虚拟仪表板,提供准确的、及时的、完整的物流事件和数据,从组织和服务的内部和跨组织运作供应链,以协调所有相关活动。”、“供应链控制塔…提供供应链端到端整体可见性和近实时信息和决策的概念……

基于PSO优化的LSTM多输入分类(Matlab)粒子群优化长短期神经网络分类

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码展示&#xff1a; 四、完整代码数据分享下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matal…

阿里云幻兽帕鲁服务器,游戏服务端版本升级怎么操作?

用阿里云一键部署的幻兽帕鲁服务器&#xff0c;想要更新游戏服务端版本&#xff0c;现在非常简单。之前还需要通过输入一行命令来更新&#xff0c;而现在可以直接通过面板上的选型来操作。 打开阿里云的计算巢&#xff0c;找到你的这台服务实例&#xff0c;点击进入&#xff0…

阿里云/腾讯云幻兽帕鲁服务器更新以后为什么没存档了?需要重新创建角色?

阿里云幻兽帕鲁服务器更新以后为什么没存档了&#xff1f;需要重新创建角色&#xff1f; 其实这个问题的主要原因可能还是因为前后的APPID不一致导致。 其实这个问题也很好解决&#xff0c;因为Palworld服务端有两种&#xff0c;一种是有APPID&#xff0c;还有一种是没有APPI…