• 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]";                                                                         

  • 相关阅读:
    C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
    typedef void (*Fun) (void) 的理解——函数指针——typedef函数指针
    Source Insight 常用设置和快捷键大全
    关闭SourceInsight的大括号自动缩进
    MDK中One ELF Section per Function选项功能探究【转载】
    Application.DoEvents()的作用
    C#中Invoke的用法
    C# 委托的应用1:将方法作为参数传递给另一个方法[转]
    C#之委托(函数参数传递)【转】
    sk-learn 选择正确的估算器
  • 原文地址:https://www.cnblogs.com/wanglisong/p/6836890.html
Copyright © 2020-2023  润新知