linux shell学习2

简单shell函数定义
#!/bin/bash /*此行是shell脚本必须包含的部分,表示用哪个进行解析,这里是bash */
#hellofun  /* 此行表示注释,shell脚本中注释使用#,放到第二行表示该脚本的名称*/
function hello(){
  echo "Hello,today is `date`" /* 'date'表示输出日期,echo是表示打印*/
}
echo "now going to call hello"
hello  /* 脚本中调用自定义的hello函数,无参数时不需要加括号*/
echo "call complate"
如果 在主程序中进行调用使用
./hello /*使用./加函数名就可以*/

自定义函数传递参数
只要在 echo "Hello,today is `date`" 修改为
echo "Hello,$1 today is `date`" /*$1 表示调用时第一个传递过来的参数 */
调用自定义有参函数
./hello bob /*直接将要传递的参数放到函数后面*/
引用其他的函数脚本或是函数
#!/bin/bash
#fun
#Source function  /*引入函数*/
.hellofun /*表示引入对应的脚本或是函数,用点+脚本名称*/
hello /*引入以后进行调用*/
set会返回一些变量的信息以及一些函数的信息。如在脚本中填写set,会打印出导入或定义的变量信息以及函数信息。
unset 函数名 表示剔除导入的函数
自定义函数通常有返回的状态值,通常返回0表示成功,1表示出现问题,这是一种约束。
小常识
file somefile: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
find -name hello.sh 根据名称查找文件
dirname file: 返回文件所在路径
grep "hello" file.txt | wc -l  /*在file.txt中搜索包含有”hello”的行并计算其行数。在这里grep命令的输出作为wc命令的输入*/
使用vi时,在非编辑模式,dd表示剪切当前行,p表示粘贴
如果将命令的结果输出到文件而不是输出到屏幕>表示写入并覆盖文件>>表示追加到尾部,保留旧文件。
>和>>的使用形式是 >file
sed是替换:将linuxfocus 替换为 LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file。
将查到的文件进行打包
tar -zcvf lastmod.tar.gz 'find -name file'
待续....

猜你喜欢

转载自jameszhao1987.iteye.com/blog/1274035
今日推荐