码迷,mamicode.com
首页 > 系统相关 > 详细

shell讲解

时间:2019-12-08 01:22:32      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:while循环   执行命令   定义变量   com   两种   port   shel   接下来   错误   

 

shell变量

系统变量和和用户自定义变量

系统变量如下

技术图片

 

 

 

技术图片

 

 

 显示当前所有变量 set命令

技术图片

 

 

 定义变量: 变量=值  =两边无空格

unset 撤销一个变量

技术图片

 

 

 技术图片

 

 

 声明静态变量,但是静态变量不能撤销

技术图片

 

 

 技术图片

 

 

 shell定义的变量规则

1.变量名称由字母,下划线,数字组成,不能以数字开头

技术图片

 

 

 

技术图片

 

 

 

2.等号两侧不能有空格

3.变量名称一般为大写

shell可以通过命令的返回去去展示结果

两种方式:

   1. result=`命令·

   2.result=$(命令)

技术图片

 

 

 

技术图片

 

技术图片

 

 

 

 技术图片

设置环境变量

export  变量名=变量值       // 将shell变量输出为环境变量

source 配置文件                 // 让修改后的配置信息立即生效

echo $变量名                  //查询环境变量的值

 

技术图片

 

 

 注意:环境变量可以为很多文件使用

技术图片

 

位置参数变量

   当我们执行了一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量比如   ./shell.sh 100 200    这就是执行的一个shelll命令,可以在在shell.sh获取到

 

  $n : n为数字,$0代表命令本身,$1到$9代表第一个到第九个参数,10以上的参数需要用大括号比如${10}

  $* 这个代表命令行中所有的参数,$*把所有的参数看成一个整体

  [email protected]  这个命令同上,也代表命令行中所有的参数,只不过是[email protected]把每个参数区分对待,在接下来的for循环表现明显,类似于java的遍历

  $# 这个变量代表命令行中所有的参数的个数

预定义变量

    就是shell设计者已经定义好的变量,可以直接在shell脚本中直接使用

    $$  当前进程号是

    $! 后台运行的最后一个进程的进程号

    $? 最后一次命令的执行状态,如果这个变量值为 0则最后一次的执行命令是正确的,如果是非0 数值无所谓,则执行错误

技术图片

 

 

 shell中的进行算数各种操作

       1、$(( 运算式    ))  或者$[ 运算式]

       2、expr m + n //  运算符之间要有空格

       3、expr m - n

       4、expr \* , /, % 乘,除,取余

 案例 计算2+4的值

技术图片

 

 

 技术图片

 

案例 计算命令行两个参数的和

技术图片

技术图片

 

 

 

 

   案例 计算2+3两个数用 expr  ` 2 + 3 `

    expr中的 \*代表乘,/代表除,%代表取余

    result=`expr   计算式 `

技术图片

         技术图片

    技术图片

 

 条件判断:

    两个整数的比较

      =      字符串比较  

-    -lt     小于

     -le    小于或等于

     -gt    大于

     -ge   大于或等于

    -ne   不等于

按照文件的权限进行判断

  -r  进行读的权限

  -w 进行写的权限

  -x  进行执行的权限

按照文件类型进行判断

  -f 文件存在,是个常规文件

  -e 文件存在

  -d 目录是否存在

应用案例:1、 ok是否与ok相等

技术图片

 

 

                  2、23是否大于22

         技术图片

 

技术图片

 

 

 shell之if语句

           if [  判断 ]

       then      echo “执行的程序”

          fi

或者

       if [ 判断 ]

     then   echo "执行的程序"

      elif [判断]

     echo   “执行的程序"

       fi

     注意: 条件判断式和中括号之间  必须有空格

请输入一个shell程序,如果输入的参数大于等于60,则输出及格了,小于60 则不及格

     技术图片

 

 技术图片

 

 

  技术图片

 

 

  case语句

       case $变量名 in

         ”值1“)

        如果变量值等于1,执行程序1

        ;;

        "值2")

       如果变量值等于2,执行程序2

       ;;

       *)

       ;;vim

       如果变量的值都不是以上的值,则执行此程序

      esac

 案例: 当命令行参数是1时,输出周一,当命令行是2时,输出周二,其他情况输出other

     技术图片

 

技术图片

 

   for循环

      for 变量 in 值1 值2 值3

    do

          程序

    done

案例   打印命令输入的参数

 第一种方式

  技术图片

 

 :技术图片

 

 第二种方式

 技术图片

   技术图片

 

注意   :      $* 是吧参数一下子给,,,, [email protected]是把参数一个一个给

  案例: 从1加到100

  技术图片

 

 :

技术图片

 

 

 while循环

    while [ 条件判断 ]

           do  

               程序

           done

   案例:从命令行输入一个数n,统计从1+。。。。。n的值是多少?

        

技术图片

 

 

 

 

 

 

 

 

 

 

 

 

 

   

   

 

 

 

 

 

 

shell讲解

标签:while循环   执行命令   定义变量   com   两种   port   shel   接下来   错误   

原文地址:https://www.cnblogs.com/bianfuxia/p/12004122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!