Shell编程学习汇总Word格式.docx
《Shell编程学习汇总Word格式.docx》由会员分享,可在线阅读,更多相关《Shell编程学习汇总Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
(1)用户自定义变量
特点:
(1)我们shell不支持数据类型,他将任意赋值给变量的数据当作字符串来处理
(2)我们定义变量的时候,不需要给钱($),我们输出的是需要给钱
(3)我们定义变量的时候,=两边不能有空格
(4)在shell中引用变量必须要加$或者${变量名}
练习2:
1、获取当前用户在/etc/passwd中的行号,用一个变量line保存
2、根据这个变量line,获取当前用户在/etc/passwd中的
NAME:
UID:
PID(1,3,4)
(2)位置变量
$0:
shell脚本的名字
$1-$9:
第一个到第九个命令行参数,空格作为分隔符号
$#:
位置参数的个数[不包括shell脚本]
$*:
所有的位置参数
$@:
$?
:
上一条命令的执行状态或者函数的返回值
shell中
0为真,非0为假
$$:
获得shell脚本的进程号
四、shell语句
1、功能性语句
read
功能:
标准读入一行,并把值赋给后面的变量
readvar1var2var3
stty-echo关闭回显
sttyecho打开回显
2、算术计算命令expr
expr第一个操作数运算符第二个操作数
或者
((C语言语句))#Cshell
expr1+3
VAR=`expr1+3`
((VAR=1+3))
3、test测试
注意:
test测试的时候,若是用到等号,等号两边要需要空格
test123=456
<
1>
字符串
=测试两个字符串是否相等
!
=测试两个字符串是否不相等
-z测试字符串长度是否为0
-n测试字符串长度是否不为0
2>
整数
-eq等于
-ne不等于
-ge大于等于
-le小于等于
-gt大于
-lt小于
注:
-a且的关系连接多个命令
-o或的关系连接多个命令
8<
x<
100((x>
8&
&
100))
test
test$x-gt8-a$x-lt100
3>
文件
-d:
测试是否是一个目录文件
-f:
测试是否是一个普通文件
-w:
测试是否可写
-r:
测试是否可读
-x:
测试是否可执行
2、控制语句
(1)单分支语句
//iftest表达式
if[表达式]
then
命令1
命令2
...
fi
exit
格式:
exitn
退出shell脚本
n:
退出码
0表示成功退出
非0表示退出失败
exit默认表示成功退出
//若是判断成立,则执行if中的语句
if[]
ls-llog
exit
//条件不成立则执行下面语句
touch
(2)多分支语句
C语言中
switch(表达式)
{
case整数常量表达式1:
C语言语句
break;
case整数常量表达式2:
case整数常量表达式3:
default:
}
case字符串变量in
模式1)
命令列表1
;
;
模式2)
命令列表2
模式3)
命令列表3
*)
命令列表n
esac
while(表达式)
C语言语句
while判断条件
do
命令列表
done
作业:
写一个1+3+5+7+9的结果
for循环语句中
for变量名in单词表
do(do接在for后,中间有其他则报错)
命令
...
工作原理:
循环的次数由单词表决定
每次从单词表中取一个变量给单词,然后执行命令
构造单词表的方法:
1、直接在in后面逐个单词写出来
2、通过变量来获得,即命令置换
五、shell函数
概念:
我们常常把完成固定功能、且多次使用的一组命令(语句)封装在一个特地的结构中
这种结构,我们就叫做函数。
我们来看一下函数的格式
定义一个函数
functionshell_function()
命令1
命令2
调用一个函数
第一种调用方法:
函数名参数1参数2
获得return返回的值
注意:
return不能返回一个字符串
function_name[arg1arg2…]
echo$?
第二种调用方法:
变量=`函数名参数1参数2`
变量保存的是函数通过echo输出
function_name[arg1arg2…]echo$?