初识shell【运算符与判断】

小白的shell之路

系统版本 Red Hat Enterprise Linux Server release 7.0

            【基础篇】
                                                      认识shell和基本运算符

 1.什么是shell脚本:

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

   2.查看本机现有解释器:
cat  /etc/shells

        3.修改用户的shell解释器:
  useradd -s /bin/ksh     zhangsan     【创建用户张三的时候指定登陆shell】
    usermod  -s /bin/ksh   zhangsan     【修改已有用户张三的登陆shell】

        4.查看历史命令:
  history
    vim  /etc/profile                       【进入配置文件】
    HISTSIZE=1000                    【可修改默认历史数量】
    history  -c                                 【清空历史命令】

           5.历史命令的应用:
    ![序号]                                    【再次执行该序号的命令】
    !cat                                         【再次执行最近以cat开头的命令】

             6.重定向标准输入/输出/错误输出
             > 将命令执行的正常输出重定向到文件
             >>:只收集前面命令的正确输出
         2>:只收集前面命令的错误输出
         &>:前面命令的正确与错误输出
         >&2:将正确的输出结果变成错误的输出

       运算符:

                     1.expr     【注:数字间有空格】

      [[email protected] ~]# expr 10 % 3  【求10与3的余数】
      1

           2.$[]
     [[email protected] ~]# echo $[5*3]   【求5乘3】
     15

              [[email protected] ~]# x=5            【分别为x和y赋值并求乘积】
      [[email protected] ~]# y=10
      [[email protected] ~]# echo $[x*y]
      50

             3.let                【不显示结果】

         [[email protected] ~]# x=6
         [[email protected] ~]# y=6
         [[email protected] ~]# let i=x+y
         [[email protected] ~]# echo $i
         12

               简写运算:
           [[email protected] ~]# x=5
           [[email protected] ~]# let x++              【为x值加1】
           [[email protected] ~]# echo $x
           6

            [[email protected] ~]# x=5
            [[email protected] ~]# let x+=5           【为x值加5】
            [[email protected] ~]# echo $x
            10
                let x*=5                                             【为x值晨乘5】
                let x/=5                                             【为x值除以5】
                let x%=5                                           【为x值取余】

                4.bc        【计算器】
           5+5
           10

                                5. 取小树点后x位
            scale=x
                                    取小数点后两位
             [[email protected] ~]# echo "scale=2;2/10"  | bc
            .20

               6. 比较:test  或    [   参数  =   参数  ]               【括号内一定要有空格】

                             [[email protected] ~]# [ a = a ]
             [[email protected] ~]# echo $?        【判断是否执行】
             0

                 7.判断空值 -z
              [[email protected] ~]# [ -z $p ]
              [[email protected] ~]# echo $?
              0
              [[email protected] ~]# p=5
              [[email protected] ~]# [ -z $p ]
              [[email protected] ~]# echo $?
              1

                      1.一行打多条命令
           a && b  仅当a成功时,才执行b
           a || b  仅当a失败时,才执行b
           a ;  b  执行a,执行b

       示例:
            创建用户登陆超过两个邮件报警
            #!/bin/bash
            num=`who | wc -l`
            [ $num -gt 2 ] && mail -s error  root < /root/mail

           编辑邮件内容vim /root/mail

                       2.判断文件/目录的状态
          -e  判断对象是否存在,存在即为真
          -d  判断对象是否为目录,存在即为真
          -f  判断对象是否为文件,存在即为真

          -r 读
          -w 写
         -o 执行本

                  注:root对所有对象皆为真『脚本除外』

          [Moring晨光]#chmod -x who.sh
          [Moring晨光]#ll who.sh
          -rw-r--r--. 1 root root 81 4月  24 11:52 who.sh
          [Moring晨光]#[ -o who.sh ]
          [Moring晨光]#echo $?
          1

           [判断]  && 命令    存在即执行命令
           [判断]  ||  命令      不存在即执行命令

               !  取反

            单分支if   只能判断对
            双分支if   判断对和错
            多分支if   多次判断

原文地址:http://blog.51cto.com/13713381/2108652

时间: 2024-11-05 21:56:44

初识shell【运算符与判断】的相关文章

Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下 $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; f

Linux | shell脚本-比较判断和运算语句

一.简介 在我们写shell脚本的过程中,经常需要作比较判断,例如比较哪个数字大,判断文件是否存在,判断文件是否是目录,判断是否为真等操作.有时候我们还需要做运行,例如加减乘除等等,今天就来简单介绍比较表达式和运行表达式. 二.shell比较判断 1.文件状态:表达式:[ -e 文件路径 ] 有空格隔开 例如:[ -e /root ] 判断/root 是否存在(1) -e 是否存在 存在为真(2) -d 是否是目录 是目录为真(3) -f 是否是文件 是文件 为真(4) -x 是否有执行权限 有

shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样. 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. #!/bin/basha=10b=20rst=`expr 2 + 2`echo '2+2 =' ${rst} rst=`exp

==运算符是判断栈中两个值是否相等

默认情况下(也即类型没有重载==运算符的情况下),==运算符是判断栈中两个值是否相等.为了验证这个结论,来看下面的程序: namespace JudgeEquals{    class Program    {        static void Main(string[] args)        {            int a = 10;            int b = 10;            Console.WriteLine(a==b); string s1 = "a

[Shell]if 常用判断条件

IF 判断 之前也写过简单的shell脚本,也不是转职运维,和系统相关的工作比较少,所以不怎么熟练. 最近由于系统总是出现各种乱七八糟的问题,也没有人来协助,只好自己写shell脚本了,都是些基础的脚本,但由于shell的语法和通常的高级语言有些不一样,所以还是要系统的看下常用的部分. if语句就是很重要的一个. 这种文章很多,只是拿来主义,如果有心得体会也会加上,小计下以后备查. 基本结构:  if语句块需要使用if结束 if condition then statements elif co

shell中条件判断if中的-z到-d的意思

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则

Linux Gvim shell 运算符

shell运算符:算数,关系,布尔,字符串,文件测试原生bash不支持简单的数学运算,可通过awk expr实现,expr最常用expr是一款表达式计算工具,使用它能完成表达式的求值操作 示例如下: 1 val=` expr 2 + 2 ` 2 echo " Total value : ${val} " 注意1.表达式和运算符之间要有空格2.完整表达式要被``包含 算数运算符 示例如下: +     -     *     /     %     ==     != 1 a=10 2

Shell脚本---条件判断

面向过程     顺序执行     选择执行:if;case     循环执行:for;while;until   循环需有退出条件 选择执行(选择执行的前提,就是条件测试)    条件测试方式(测试条件)     bash命令测试          bash命令有命令执行状态返回值          $?:用于上一条执行的命令状态返回值          0:成功执行          1-255:失败          可以使用exit命令,在脚本中自定义脚本状态返回值,如果不定义,脚本的状

shell脚本真假判断(0为真,非0为假?或0为假,非0为真?)

在网络上,总有人说shell脚本的真假判断,有说0位真的,非0为假,但真的是这样吗? 做个实验,写个0的判断语句 执行结果是0 is true,那么我们想当然1是false了,做下测试: 然而执行的结果却大相径庭,0是ture,1也是ture 也就是说其他语言中(0为真,非0为假?或0为假,非0为真?)的理论均不成立. 那么linux是以什么来作为判断的呢 答案就是以命令执行后的状态,状态可用$?查看(echo $?显示0,表示执行成功,1表示执行失败) shell脚本真假判断(0为真,非0为假

shell中条件判断if中的-z到-d

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真.[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真