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'

待续....

相关推荐