shell脚本

来源:互联网 发布:网络监控交换机连接 编辑:程序博客网 时间:2024/05/18 23:27

脚本:一些命令的集合 有shell脚本和bush脚本

建立脚本文件:shell脚本文件名的后缀为  .sh  

脚本文件的执行前要将文件赋予可执行权限   chmod +x 文件名 (注意,此+在赋予权限时是存在的)

shell脚本的基本元素   #!/bin/bash   (表示脚本类型 不写的话linux系统默认为bush类型    #为注释作用  在文件的开始前一定要添加这样的一行代码)

shell的三种运行方式 1、./脚本文件名(xxx.sh)

                                  2、 bush xxx.sh

                                  3、 sh xxxx.sh


shell文件的创建过程 1、编写xxx.sh文件

                                  2、给这个文件赋予可执行权限 chmod +x xxx.sh

                                  3、执行



pwd :显示当前内容


echo : 作用是将字符串输出到终端   echo 要输出的内容



shell程序的组成 1、shell类型

                           2、函数(shell函数无返回值和参数)

                           3、程序主体


shell函数中的一些特殊符号 

#         表示注释

$         取变量的值

echo   进行输出 在终端上显示

" "       (双引号)中间包含的内容是字符串

                            其中特殊的地方为 :这个字符串内部的$符号不会被解释为字符串 会被当作特殊字符来处理 要想输出$需要用转义字符\

                                                                                                                                                                              例:"\$path"的输出结果为$path

                            双引号中的特殊字符为 \  $  `

'  '      (单引号)包含的内容都是字符串 不将任何字符作为特殊字符来处理 

` `      (倒引号)包含的内容会被当作命令来执行

HOME  是命令 代表当前用户的当前工作目录

举例:

1、echo "my name is $HOME"

结果显示为  my name is /root

2、echo "my name is $HOME"

结果显示为 my name is $HOME

3、echo "my name is $HOME"

结果显示为 无法输出结果 错误

4、echo "my name is `pwd`"

结果显示为 my name is /home

5、echo 'my name is `pwd`'

结果显示为 my name is `pwd`

                                            

变量 :可以保持路径名、文件名、或者一个数字

变量类型: 1、 局部变量 只可以在当前使用 可以任意的使用和修改

                                         赋值 变量名=值 等号左右两边不可有空格 若取值包含空格 则必须用双引号括起来 变量区分大小写

                                         引用  $变量名    (一个字符时使用 a )  

                                                  ${变量名}  (超过一个字符时使用   abc)

                                         echo $变量名   显示单个变量的取值

                                        清除变量 取消变量 unset 变量名   例如 unset ${name}

                                                                                                       unset name  (无$)

                                         set 显示本地所有的变量

                   2、 环境变量 在所有终端均可以使用  环境变量均为大写  比如PATH HOME 

                                         设置环境变量 variable-name=value   或

                                                                export variable-name (名字要大写)(一般情况下我们不要去设置环境变量)

                                         显示环境变量 env 这是一个命令

                                         PATH  包含一列用冒号定界的目录的路径名字  便于可执行程序的搜索

                                         例 PATH=$PATH: /home/0514/     复制了路径(/home/0514) 是临时性的

                   3、只读变量 readonly  不可在改变其变量值 变量名=值

                                                                                           readonly 变量名

                   4、内部变量 不可修改

                                         函数无参数 不需要声明

                                         需要参数时如何获取(显示出已有的参数)  :  共有几个参数

                                                                                                                      命令与参数直接用空格隔开 

                                                                                                                      数字代表第几个参数

                                                                                                                      $#  传递给shell程序的位置参数的数量

                                                                                                                      0代表本身      $0 shell程序的名称

                                                                                                                      取所有参数的值用*    $* 调用所有参数

                                                                                                                      运行时先跳过函数 然后再返回

                                                                                                                       echo $?    ?代表上一次命令执行的结果或返回值

                                                                                                                                       (结果为0 正确

                                                                                                                                           结果非0 错误)

                                                                                                                       exit返回数字 不接受字符串




创建变量   1、 可以在任何时间通过简单的赋值来创建 <variable name>=<value>   (shell中所有的变量都被当作字符串)

                 2、引用变量 用符号$来引用变量的内容 variable1=${variable2}

                 3、使用read命令          read 变量(不分类型)    在终端上输的值会赋给变量


命令  1、 expr 用于求值

                expr  $((表达式))  表达式中的运算符号  +、\*(利用了转义字符)、/  加、乘、除

                                             此式子整体含义为计算表达式的值

                echo $((表达式))  也是在终端上直接输出表达式的值

         2、operation (opt) 操作运算

         3、 date   输出当前的时间



条件判断 1、 test num1 命令 num2                                      

                                         -lt (小于)

                                         -le(小于等于)

                                         -gt(大于)

                                         -ge(大于等于)

                                         -eq(等于)

                                         -ne(不等于)      

                格式  test num1 命令 num2

                         echo $?

                 2、 [ num1 命令 num2 ]      (为test语句的等价形式 用[]代替了test)

                       分括号前后和num之间一定要有空格



if语句     if 条件

              then

              处理的事情a

              else

              处理的事情b

              fi                        (if语句的结束符为fi)

判断参数必须为1 一个参数情况下判断文件是否存在

exit(退出)+数字 例exit 1



文件测试的一些命令 -f           判断文件是否存在

                                 -d           判断文件是否为目录

                                 -w -r -x   判断文件是否可读可写可执行

例如  test -f 文件名

         echo $?


-a 与

-o 或

!非


分支语句 1、 if

               2、case   case “$#” in

                               n)   语句 ;;

                     esca

                    其中: $# 代表参数的个数

                                in 关键字

                                esca 结束标志

                               每个语句的结束都要是;;

                                n



循环语句 1、 while循环

                    格式 while <条件>

                            do

                            <循环体,命令>

                            done

                2、 for循环

                     格式 for i in 参数范围(参数之间以空格区分)

                             do

                            echo $i

                             done

                3、until循环:执行假的循环体 直到条件为真时跳出循环体

补充一些命令 1、命令seq  为产生一组数字序列

                            例 `seq a b `  其中a b 为两个参数 结果产生a到b之间所有的数

                                                  执行命令加倒引号

                                                  也可在终端直接书写 在终端书时用;隔开



 


原创粉丝点击