linux shell学习2
简单shell函数定义
#!/bin/bash/*此行是shell脚本必须包含的部分,表示用哪个进行解析,这里是bash*/
#hellofun/*此行表示注释,shell脚本中注释使用#,放到第二行表示该脚本的名称*/
functionhello(){
echo"Hello,todayis`date`"/*'date'表示输出日期,echo是表示打印*/
}
echo"nowgoingtocallhello"
hello/*脚本中调用自定义的hello函数,无参数时不需要加括号*/
echo"callcomplate"
如果在主程序中进行调用使用
./hello/*使用./加函数名就可以*/
自定义函数传递参数
只要在echo"Hello,todayis`date`"修改为
echo"Hello,$1todayis`date`"/*$1表示调用时第一个传递过来的参数*/
调用自定义有参函数
./hellobob/*直接将要传递的参数放到函数后面*/
引用其他的函数脚本或是函数
#!/bin/bash
#fun
#Sourcefunction/*引入函数*/
.hellofun/*表示引入对应的脚本或是函数,用点+脚本名称*/
hello/*引入以后进行调用*/
set会返回一些变量的信息以及一些函数的信息。如在脚本中填写set,会打印出导入或定义的变量信息以及函数信息。
unset函数名表示剔除导入的函数
自定义函数通常有返回的状态值,通常返回0表示成功,1表示出现问题,这是一种约束。
小常识
filesomefile:得到文件类型
readvar:提示用户输入,并将输入赋值给变量
find-namehello.sh根据名称查找文件
dirnamefile:返回文件所在路径
grep"hello"file.txt|wc-l/*在file.txt中搜索包含有”hello”的行并计算其行数。在这里grep命令的输出作为wc命令的输入*/
使用vi时,在非编辑模式,dd表示剪切当前行,p表示粘贴
如果将命令的结果输出到文件而不是输出到屏幕>表示写入并覆盖文件>>表示追加到尾部,保留旧文件。
>和>>的使用形式是>file
sed是替换:将linuxfocus替换为LinuxFocus:cattext.file|sed's/linuxfocus/LinuxFocus/'>newtext.file。
将查到的文件进行打包
tar-zcvflastmod.tar.gz'find-namefile'
待续....