linux技能点七 shell

shell脚本:定义,连接符,输入输出流,消息重定向,命令的退出状态,申明变量,运算符,控制语句

              定义:linux下的多命令操作文件

              连接符: ;:用于命令的分隔符,命令会从左往右依次执行

                          &&:用于命令的分隔符,出错命令会停止执行

                          ||:用于命令的分隔符,出错才会继续执行

                          &:后台执行,

             输入输出流  标准输出:命令的给出的正确消息,数值描述符:1

                             标准错误:命令的给出的错误消息,数值描述符:2

                             标准输入:接受内容,数值描述符:0

             消息重定向  输出重定向   >    >>

                             合并输出消息1>&2   2>&1

                             输入重定向<

            命令的退出状态   0:正确的

                                   非0:错误的

                                  $?:命令退出值

                                  ech0 string:输出字符串

             申明变量      命令行直接申明:varName=value

                              read varName1   varName2.......

                             取变量值:${varName}

            运算符      test  expression  或者  [expression]

                           expr:数值计算

            控制语句:if  select   while   for   continue   break

     

变量含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

问题1:  标准输出。标准错误,标准输入的理解

      2.   /dev/null  是伪设备,空文件设备

      3.   1>&2,2>&1要理解其中的意思  ???????????????????????

           比如:id tom 2> /dev/null    2的意思是如果你的命令出错,错误报告直接就删除了

                                                   不会显示在屏幕上,如果命令是对的,正常输出显示出来。

            如果用户tom已经存在,命令正常执行,正常输出,uid=606(tom)gid=607(tom)

            组=607(tom)    

            如果用户tom不存在,,则命令出错,执行上述重定向到/dev/null上,不会显示在屏幕上。      

      4.运算符的应用注意事项:

         编写第一行加  #!

         编写完之后用chmod加可执行权限

         执行编写好的程序是  ./  + 程序名字

        比如:加法运算程序

                sum=0

                for((i=1;i<=$#;i++));

                do

                   sum=$(($sum +${!i}));

               或 sum=$sum +${!i} ;

               done

              echo "sum = ${sum]";                                                                         

原文地址:https://www.cnblogs.com/wanglisong/p/6836890.html