Linux笔记之shell script

Sehll script是利用shell的功能所写的一个程序,这个程序使用纯文本文件,将一些shell的语法与命令写在里面,搭配正则表达式、管道命令与数据流重定向等功能,已达到咱们因此想要的处理目的。正则表达式

1、script的编写与执行shell

执行sh文件的方法:bash

  • 直接命令执行(文件必须具有rx权限)

使用绝对路径来执行函数

使用相对路径来执行调试

将sh文件放在PATH变量指定的目录下,例如:~/bin/进程

  • 以bash进程来执行:经过“bash shell.sh”或“sh shell.sh”来执行(文件只需具有r权限,且当前目录下存在该sh文件)
  • source或者小数点(.)来执行,例如:source shell.sh

2、script的执行方式区别ip

利用直接执行的方式来执行script:在子进程中执行(直接命令执行、bash进程执行都属于这种)字符串

利用source来执行脚本:在父进程中执行(命令格式:source 文件名)it

3、善用判断式(test或者中括号)io

一、test命令

检测系统上面某些文件或者是相关的属性、字符串、多重条件判断

举例:

  • 用户首选输入一个文件名
  • 若是文件不存在,则输出文件不存在并中断程序;
  • 若文件存在,则判断是文件或目录,而后输出相应结果;
  • 判断用户对这个文件或者目录所拥有的权限,并输出权限数据;

二、【】判断符号

在方括号中的每一个组件都须要用空格隔开,变量用双引号括起来,常量用单或者双引号括起来

例如:

箭头所对应的都是空格。

三、shell script默认变量$0,$1,。。。

执行脚本的后面能够带参数。

$0默认为文件名,其后的是参数。$#表明参数个数,$@表明"$1"," $2","$3"等$*表明“$1c$2c$3”,其中c是分隔符,默认是空格键

举例:

执行一个带参数的script,要求屏幕显示:

  • 文件名;
  • 共有几个参数;
  • 若参数小于2则告知参数太少;
  • 所有参数内容;
  • 第一个参数;
  • 第二个参数;

4、条件判断式

一、If...then

if [ 条件判断式一 ]; then

    程序段

elif [  条件判断式二 ];  then

    程序段

else

    程序段

fi

(注意事项:if 和 [ 之间须要有空格,; 和 then之间也须要空格)

举例:

二、case...esac

case  $变量名称  in

    "第一个变量内容")

        程序段

        ;;

    "第二个变量内容")

        程序段

        ;;

    *)

        程序段

        exit 1

        ;;

    Esac

举例:

5、函数

function fname(){

程序段

}

其中function也是拥有内置变量的,它与shell script很相似,函数名称表示$0,后续变量是以$1,$2...替代的

6、循环

一、    while [ condition ]

    do

    程序段

    done

二、  until [ condition ]

    do

    程序段

    done

三、  for var in conl con2 con3

    do

    程序段

    done

四、  for ( ( 初始值; 限制值; 执行步长 ) )

    do

    程序段

    done

7、追踪与调试

sh [-nvx] 文件名

-n:不要执行脚本,仅查询语法的问题

-v:在执行脚本前,先将脚本的内容输出到屏幕上

-x:将使用到的脚本内容显示到屏幕上

相关文章
相关标签/搜索