shell允许将一组命令集或语句形成一个可用块,这些块成为shell函数。shell函数根一般的函数一样,也有2部分组成:函数名、函数体,函数名应该是唯一的:如
#!/bin/sh
hello()
{
echo "hello world"
}
hello #调用函数hello
shell输入输出
1、echo(输出)命令
使用echo可以显示文本行或变量,或者把字符串输入到文件,它的一般形式为:echo string
2、read(输入)命令
可以使用read语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量,如果只指定了一个变量,那么read将会把所有的输入赋给改变量,直到遇到第一个文件结束符或回车。它的一般形式为:read variable1 variable2 ........如果给出了多个变量,shell将用空格作为变量之间的分隔符。如果输入文本域过长,shell将所有超长部分赋予最后一个变量,如:
read name sex age
echo $name
echo $sex
如果输入:wangfangyong man 22
输出结果为:
wangfangyong
man 22
3、cat命令
cat是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。在使用cat时要注意,他不会在文件分页符处停下来,他会一下显示完整个文件,如果希望每次显示一页,可以使用more命令或把cat命令的输出通过管道传递到另一个具有分页功能的命令中。
cat > a.txt
adb
gjk
<ctrl+d>
上面的命令创建了一个新文件a.txt,内容为adb gjk,可以使用cat a.txt查看a.txt的内容。
4、管道(|)
管道可以把一个命令的输出传递给另一个命令作为输入。管道用竖杠|表示,它的一般形式为:命令1|命令2
5、tee
tee把输出的一个副本输送到标准输出,把另一个副本复制到相应的文件中,一般形式为:tee -a files其中-a表示追加到问价末尾。
ls -l | tee ls.txt
在标准输出的同时将副本复制到ls.txt中,使用cat ls.txt可以发现内容与之前标准输出一样。
6、文件重定向(command)
在对标准错误输出进行重定向时,必须要实用文件描述符,但是对于标准输入和输出就不必要。常用的文件重定向命令可以查手册知道。
引用
1、双引号:使用双引号可以引用除字符$、`、\、外的任意字符或字符串。
2、单引号:单引号与双引号类似,不同的是shell会忽略任何引用值,如:
who='wang fangyong'
echo 'current user is 'who''
结果为:current user is 'wang fangyong'
3、反引号
反引号用于设置系统命令的输出到变量,shell将反引号中的内容作为一个系统命令,并执行其内容,如:
echo `date`
结果为:2010年 10月 04日 星期一 11:25:55 CST
4、反斜杠
如果下一个字符有特殊含义,可用反斜杠防止shell误解其含义,即屏蔽其特殊含义,字符&*+^$`"|?有特殊含义。注意使用-e选项来显示控制字符。
echo -e '\0100 is at sign'
@ is at sign
使用expr时,用*表示乘法会出错,在*前加上反斜杠才正确。
expr 10 \* 10
结果为:100