1、for语句
原型1:
for 变量 in 取值集合
do
语句
done
原型2:
for 变量in 文件正则表达式
do
语句
done
原型3:
for 变量 in $*
do
语句
done
#!/bin/sh
name=(i am very happy)
for i in ${name[*]}
do
echo$i
done
运行结果:
i
am
very
happy
2、while语句
while 条件测试语句
do
语句
done
#!/bin/sh
echo input your type
read type
echo "type is:"${type}
while [ ${type} != "quit" ]
do
echo"your input is :"${type}
echoinput your type again
readtype
done
注意:[]要有空格。
3、函数
shell函数
function 函数名()
{
语句
}
function关键字不是必须的;调用函数时,只需指定函数名,不用加后面的()。
#!/bin/sh
function printname()
{
echomy name is yuan
}
printname
运行结果:
my name is yuan
shell函数的参数和返回值
1) 变量直接传递法:函数外部声明变量,函数体操作。
#!/bin/sh
name=tom
printname()
{
echo name is:${name}
name=jim
echo name is:$name
}
printname;
echo name is: $name
运行结果:
nameis:tom
nameis:jim
name is: jim
2) 位置参数
#!/bin/sh
functionprintname()
{
echo $1
echo $2
}
printname yuan li
运行结果:
yuan
li
也可用return返回。
编写一个目录遍历程序,要求能够显式指定目录中的文件与目录信息。
#!/bin/sh
for filein ./*
do
if test -f $file
then
echo $file is 文件
fi
if test -d $file
then echo$file is 目录
fi
done