本质:
Shell命令的有序集合
步骤:
1)创建脚本文件:touch xxx.sh (文件以.sh结尾)
2)修改权限:chmod 777 xxx.sh
3)执行脚本:./xxx.sh
Shell允许用户建立变量存储数据,但不支持数据类型(整型、字符、浮点型),
将任何赋给变量的值都解释为一串字符。
Shell变量
1)用户自定义变量
在shell编程中通常使用全大写变量,方便识别
变量的调用:在变量前加$
Linux Shell/bash从右向左赋值
使用unset命令删除变量的赋值
2)位置变量即 命令行参数
$0 与键入的命令行一样,包含脚本文件名
$1,$2,……$9 分别包含第一个到第九个命令行参数
${10}, ${11} 打印第十个、十一个命令行参数
$# 包含命令行参数的个数(不包含脚本文件)
$@ 包含所有命令行参数:“$1,$2,……$9”
$* 包含所有命令行参数:“$1,$2,……$9”
3)预定义变量
$? 包含前一个命令的退出状态(0为真 1为假)
$$ 包含正在执行进程的ID号
4)环境变量
一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
HOME: /etc/passwd文件中列出的用户主目录
PATH :shell搜索路径
Shell语句
1.read
功能:read从标准输入读入一行, 并赋值给后面的变量
read var1 var2 var3
把读入行中的第一个单词(word)赋给var1, 第二个单词赋给var2,
……把其余所有的词赋给最后一个变量.
read -p “提示语句” 变量名:可以将提示语句输出,同时输入变量
如:read -p "please input val:" var1 var2 var3
2.expr
算术运算命令expr主要用于进行简单的整数运算,包括加(+)、减(-)、乘(\*)、整除(/)和求模(%)等操作。
如:
$ expr 12 + 5 \* 3
$ sum=`expr 2 \* 6 `
$ echo $sum
注意:
1.不能直接使用(),如果使用需加上\(\),用作转意,如expr /( 3 + 3 /) / 3
2.运算符和数字之间需要加上空格,如果有括号括号前后也有空格
3. 对变量进行自加运算 ((i++))
3.test
test语句可测试三种对象:
字符串 整数 文件属性
每种测试对象都有若干测试操作符
1)字符串的测试:
s1 = s2 测试两个字符串的内容是否完全一样
s1 != s2 测试两个字符串的内容是否有差异
-z s1 测试s1 字符串的长度是否为0
-n s1 测试s1 字符串的长度是否不为0
2)整数的测试:
a -eq b 测试a 与b 是否相等
a -ne b 测试a 与b 是否不相等
a -gt b 测试a 是否大于b
a -ge b 测试a 是否大于等于b
a -lt b 测试a 是否小于b
a -le b 测试a 是否小于等于b
3)文件属性的测试;
-d name 测试name 是否为一个目录
-f name 测试name 是否为普通文件
-e name 测试文件是否存在
练习
计算表达式值a*b+c-d/b,a=2,b=3,c=15,d=18
要求:
1)从终端读入4个数a,b,c,d
2)进行运算
3)打印结果输出到终端
除号/不需要转译, echo后面注意写中文引号则会连引号也输出