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
来表示循环开始语句与结束语句