0409学习总结2(shell脚本文件的学习)
2017-04-09 19:51
211 查看
shell命令解析器
1.Shell脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到执行。
2.shell脚本有两种执行方式
(1)交互式:用户输入一条命令,Shell就执行一条
(2)批处理:写成shell脚本,一次性执行
3.shell脚本编辑格式首先开头
#!/bin/sh
如何新建一个脚本?
(1)vim demo.sh
编写完之后执行
(2)sh demo.sh
4.注释方式
(1)行注释:#
(2)段注释::<<!EOF!
!EOF!
5.在Shell编程中,所有的变量都由字符串组成,并且不需要预先对变量进行声明。
命名规范:
①首个字符必须为字母;
②中间不能有空格,可以有下划线
③不能使用标点符号,不能使用bash中的关键字
6.shell脚本中换行的如何使用
例子:echo -e "dsf \n"#-e是对字符\n进行转换
7.shell脚本中变量的设置
例子:#!/bin/sh
num=2
echo "this is the $num"
#对变量的引用加$
8.只读变量:readonly num=2
删除变量:unset num(不能删除只读变量)
9.在shell脚本中全局变量在函数使用完之后值是不会改变的
10.声明局部变量:例子:local hello="var2"
注意:1、变量赋值时,“=”左右两侧都不能有空格
2、BASH中的语句结尾不需要分号
11.if语句的使用
例子:
if [ ]
then
....
else if [ ]
then
.....
else
.....
fi
fi
#fi对应着上一个的if
11.比较
比较操作 整数操作
字符串操作
相同 -eq
=
不同 -ne
!=
大于 -gt
>
小于 -lt
<
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
例:
比较整数a和b是否相等:if [ $a = $b ] (或eq)
判断整数a是否大于整数b:if [ $a -gt $b ]
比较字符串a和b是否相等:if [ $a = $b ]
判断字符串a是否为空:if [ -z $a ]
判断整数变量a是否大于b:if [ $a -gt $b ]
注意:
1、在“[”和“]”的左右都留有空格
2、“=”左右都有空格
12.for循环
for 变量 in [ ]
do
。。。。。
done
例子:
for day in Sun Mon Tue Wed Thu Fri Sat
do
echo $day
done
输出的结果就是:
sun
mon
tue
wed
thu
fri
sat
13.while循环
while 循环的基本结构是:
while [ condition ] #condition为真执行
do
。 。。。。。
done
例子:
#!/bin/sh
read COUNT
a=1
add=0
while [ $a -le $COUNT ]
do
add=`expr $add + $a`
a=`expr $a + 1`
done
echo "add = $add
#这个例子是指键盘输入两个数,然后结果为这连个数的遍加
#`这个是键盘上1的左边那个键位
14.until循环
until [ condition ] #condition为假时执行
do
。。。。
done
15.case语句的使用(类似于c中的switch)
例子:
case 2 in
1) ;;
2) echo "sadasf" ;;
3);;
*);;
esca
#当键盘输入2时,就会显示结果为sadasf
#1、*)相当于default
#2、;;相当于break
16.函数的使用
格式:
function function_name ( )
{
list of commands
[ return value ]
}
(1)函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值。
(2)Shell 函数返回值只能是整数
(3)删除函数:$unset .f function_name
17.数组的使用
(1)在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
array_name=(value1 ... valuen)
(2)还可以单独定义数组的各个分量:可以不使用连续的下标,而且下标的范围没有限制。
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
(3)读取数组元素值的一般格式是:
${array_name[index]}
(4)
使用@ 或 * 可以获取数组中的所有元素:
${array_name[*]}
${array_name[@]}
(5)
获取数组的个数:
number=${#array_name[@]}或length=${#array_name[*]}
取得数组单个元素的长度
length=${#array_name
}
*18.在编写shell脚本时一定要注意空格的使用,不然会出现错误
1.Shell脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到执行。
2.shell脚本有两种执行方式
(1)交互式:用户输入一条命令,Shell就执行一条
(2)批处理:写成shell脚本,一次性执行
3.shell脚本编辑格式首先开头
#!/bin/sh
如何新建一个脚本?
(1)vim demo.sh
编写完之后执行
(2)sh demo.sh
4.注释方式
(1)行注释:#
(2)段注释::<<!EOF!
!EOF!
5.在Shell编程中,所有的变量都由字符串组成,并且不需要预先对变量进行声明。
命名规范:
①首个字符必须为字母;
②中间不能有空格,可以有下划线
③不能使用标点符号,不能使用bash中的关键字
6.shell脚本中换行的如何使用
例子:echo -e "dsf \n"#-e是对字符\n进行转换
7.shell脚本中变量的设置
例子:#!/bin/sh
num=2
echo "this is the $num"
#对变量的引用加$
8.只读变量:readonly num=2
删除变量:unset num(不能删除只读变量)
9.在shell脚本中全局变量在函数使用完之后值是不会改变的
10.声明局部变量:例子:local hello="var2"
注意:1、变量赋值时,“=”左右两侧都不能有空格
2、BASH中的语句结尾不需要分号
11.if语句的使用
例子:
if [ ]
then
....
else if [ ]
then
.....
else
.....
fi
fi
#fi对应着上一个的if
11.比较
比较操作 整数操作
字符串操作
相同 -eq
=
不同 -ne
!=
大于 -gt
>
小于 -lt
<
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
例:
比较整数a和b是否相等:if [ $a = $b ] (或eq)
判断整数a是否大于整数b:if [ $a -gt $b ]
比较字符串a和b是否相等:if [ $a = $b ]
判断字符串a是否为空:if [ -z $a ]
判断整数变量a是否大于b:if [ $a -gt $b ]
注意:
1、在“[”和“]”的左右都留有空格
2、“=”左右都有空格
12.for循环
for 变量 in [ ]
do
。。。。。
done
例子:
for day in Sun Mon Tue Wed Thu Fri Sat
do
echo $day
done
输出的结果就是:
sun
mon
tue
wed
thu
fri
sat
13.while循环
while 循环的基本结构是:
while [ condition ] #condition为真执行
do
。 。。。。。
done
例子:
#!/bin/sh
read COUNT
a=1
add=0
while [ $a -le $COUNT ]
do
add=`expr $add + $a`
a=`expr $a + 1`
done
echo "add = $add
#这个例子是指键盘输入两个数,然后结果为这连个数的遍加
#`这个是键盘上1的左边那个键位
14.until循环
until [ condition ] #condition为假时执行
do
。。。。
done
15.case语句的使用(类似于c中的switch)
例子:
case 2 in
1) ;;
2) echo "sadasf" ;;
3);;
*);;
esca
#当键盘输入2时,就会显示结果为sadasf
#1、*)相当于default
#2、;;相当于break
16.函数的使用
格式:
function function_name ( )
{
list of commands
[ return value ]
}
(1)函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值。
(2)Shell 函数返回值只能是整数
(3)删除函数:$unset .f function_name
17.数组的使用
(1)在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
array_name=(value1 ... valuen)
(2)还可以单独定义数组的各个分量:可以不使用连续的下标,而且下标的范围没有限制。
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
(3)读取数组元素值的一般格式是:
${array_name[index]}
(4)
使用@ 或 * 可以获取数组中的所有元素:
${array_name[*]}
${array_name[@]}
(5)
获取数组的个数:
number=${#array_name[@]}或length=${#array_name[*]}
取得数组单个元素的长度
length=${#array_name
}
*18.在编写shell脚本时一定要注意空格的使用,不然会出现错误
相关文章推荐
- Shell脚本学习-文件操作和文本处理
- Shell脚本学习——[以文件之名]
- 学习笔记 linux 编译文件用shell脚本实现
- shell 脚本完成对日志文件的提取之awk 学习
- shell脚本学习总结
- 通过一个shell脚本学习文件的特殊权限
- shell脚本学习与总结
- shell脚本学习总结
- Linux系统命令及Shell脚本学习笔记四:Linux文件系统
- BASH命令和SHELL脚本总结(11)比较两个文件创建时间的先后
- shell 脚本菜鸟学习总结
- 「Shell」Shell 脚本学习──文件存在判断
- Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》
- 顶嵌学员学习笔记:Shell脚本编程总结
- Shell脚本学习笔记(十)--文件操作
- shell脚本学习与总结
- shell脚本学习总结
- 【Shell脚本学习25】Shell文件包含
- 鸟书shell学习(三)shell脚本程序设计要点总结