shell脚本:是一个很多shell命令组成的一个文件
一:�常量
数字常量 字符常量 字符串常量
二:shell的入门
1 echo "hello word"
*echo就是输出命令
2程序执行方式
chmod +x 1.sh//增加执行的权限
./1.sh 运行脚本文件
注意点:尽量使用第一种,不要使用第二种
-rw-r--r--
第一个字符如果是-:代表这是一个普通文件纯文本的
echo的深度用法
echo
可以加上 “”。尅一不加‘’
echo式自动换行的
echo -e 开启转义,对特殊的字符进行转义
二进 制的
d:代表目录文件
r:带白哦可读
w:代表可写
x:代表可写
rw-:代表文件宿主用户的操作权限
r--:代表与宿主用户同组的其他用户权限
r--:代表其他用户
chmod +(-)x 1.sh给所有的用户加上可执行权限或减去权限
u:user,owner g:group
chmod 7771.sh
标示符的命名规范
只能有字母,数字或下划线组成
不能以数字开头
不能与shell脚本的关键字相同
建议规范
不准用拼音代替,多查字典
尽量使用驼峰命名法numOfStident
见名之意
变量的定义
不需要制定变量的数据类型
左边是变量名,右边死变量存储的值
=左右两边不能有空格
注意:如果这个变量没有定义,就直接使用,那么久默认这个变量为空格
- shell脚本的语法规范
每一行写完不需要分号
上面语法的错误不会影响下面代码的执行
shell脚本是一个动态决定数据类型的语言
*变量的使用
a 不加$时候的情况
1、在变量的定义和变量的赋值不需使用
2、在变量删除的时候
3、在与let关键字连用的时候
b变量+{}
为了分清界限
‘’:不能转义取值
不加:不能很好的分清是变量爱是值
“”:可以避免上述问题
转义字符
\c代表不换行
\t相当于tab按键
(1)如果采用./1.sh运行方式,需要开启echo -e
(2)如果采用sh 1.sh运行方式,不需要开启转义
例如:echo "xxx\t===="
字符串的处理方式
1>计算字符串的长度
1string="hello"
2length=${#string}
3echo "${length}"
2>拼接字符串
1string="hello"
2string1="world"
3string2="$string $string1"
4echo ${string}
3>截取字符串
1string="hello world"
2string1=${string:6:5}
3echo "${string2}"
*printf的用法
简单案例
1num=1
2string="hello"
3printf "${num},${string}\n"
4pr intf"num=%d,string=%s\n"${num} ${string}
5ch="c"
6num2=12.3
*printf"ch=%c,num2=%f\n"${ch} ${num2}
分析
%d:代表打印的数值是一个整数
%S:代表打印的数值是一个字符串
%c:代表打印的数值是一个字符
%f:代表打印的数值算是一个小数
%m.nf代表是 左对齐
m只是控制打印的宽度
%md: %mc: %ms:
注意点:
所有的数据类型都可以看成字符串去打印
字符串不能用整数,小数,字符型去打印
*只读变量readonly
3readonly value=1
4value=2 #这一行会出错,因为这个变量已经用readonly 进行修饰,说明这个变量将来只读,不可写.
注意 只读变量不可删除
算数运算符(整数)
+ - * / %
取结果集
`` $()
注意点:如果是*必须用\*,告诉编译器这是乘.计算机只能计 算相同类型的数据,其结果一定与类型相同
let关键字
前缀++,__....
关系运算符
\> \< \>= \<=
需要加\进行转义
if 条件分支
1>
if[条件]'
then
输出的信息
fi
2>
if[条件]
then
输出的信息
else
输出的信息
fi
3>
if[条件]
then
输出的信息
elif[条件]
then
输出的信息
......
elif[条件]
then
输出的信息
else
输出的信息
fi
注意: 1>else可有可无
2>如果有else,必须放在最下面
3>别忘了加标识符
-gt:大于 -lt:小于
-ge:大于等于 -le:小于等于
-eq:等于 -ne:不等于
字符串运算符
= != -z
-z $str判断字符串是否为空
$str 判断字符串是否不为空
例如
1string="hello'
2string1=""hello
3string=""
4if [ -z$string2 ]
5then
6 echo"不存在"
7else
8echo"存在"
9fi
文件运算符
-e 文件路径:判断文件是否存在
-d 文件路径:判断文件是否是目录.directory
-f 文件路径:判断文件路径是否是普通文件,file
-r.........可读
-w.......可写
-x.........执行
例如
1if [ -e ~/xxx]
2then
3 e cho"存
4else
5 mkdrv~/xxx
6 echo "创建成功"
7fi