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
then
    echo "$n==$m"
else
    echo "$n!=$m"
fi
echo "结束"

8.shell脚本中循环语句

for((i=0;i<10;i++))

{

    echo hello linux

}

也可以用

do

done

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

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay/.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值