学了一下午的shell脚本,记一记!
变量
-
简单的分类,三种变量
-
数字:整数、小数
-
字符串:
-
‘:变量在其中不起作用
-
”:没什么特殊的
-
数组:元素可以是数字和字符串
-
-
-
a=12
b=1.3
c=‘我学shell‘
d="我学shell"
e=(1 3 4 ‘我学shell‘) # 数组元素空格隔开
# 变量名和值没有空格,没有空格,没有空格!
error = "虽然我工整,但是我是错误的定义" #错误定义 -
使用
-
非数组: $name or ${name},
-
数组: ${array_name[n]}:
-
n为数字: 数组下标
-
n 为* @ ,整个数组
-
-
运算
-
分类——百度
-
算术
-
关系
-
逻辑
-
布尔
-
文件运算
-
-
注意:
-
记忆运算符字符
-
> < 是shell重定向运算符, 脚本中需要用 -gt -lt代替, 其他冲突的也一样。
-
语句
-
基本语句:linux 命令
-
流程语句:
-
条件
-
if
-
case
与C++ java不同,case不需要break
-
-
循环
-
for
for((i=1; i<10; i++ ));do # 1.还有另一种方式 for i in {1..9}, 记得写do
for((j=1; j<10; j++));do
if [ $j -le $i ];then
echo -e $j"X"$i"="$[i*j]"\t\c"
fi
done # 2.循环结束写 done
echo ""
done
########################### 输出 #######################################
1X1=1
1X2=2 2X2=4
1X3=3 2X3=6 3X3=9
1X4=4 2X4=8 3X4=12 4X4=16
1X5=5 2X5=10 3X5=15 4X5=20 5X5=25
1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81 -
while
-
until
-
-
函数
-
无参数函数
-
有参数函数
-
内部传参
-
内部或外部传参
-
-
有返回值函数