Day 12 shell语法及程序若干

1. 现归纳一下shell中的运算符:   
    +:对两个变量做加法。
    -:对两个变量做减法。
    *:对两个变量做乘法。
    /:对两个变量做除法。
    **:对两个变量做幂运算。
    %:取模运算,第一个变量除以第二个变量求余数。
    +=:加等于,在自身基础上加第二个变量。
    -=:减等于,在第一个变量的基础上减去第二个变量。
    *=:乘等于,在第一个变量的基础上乘以第二个变量。
    /=:除等于,在第一个变量的基础上除以第二个变量。
    %=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。

程序:实现数学函数S=3(xy)+4x2+5y+6的运算。在程序中以位置变量的方式输入x与y的值。如下:

  1 #1/bin/bash
  2 #实现S=3(xy)+4x**2+5y+6的运算
  3 
  4 read -p 'input x: ' x
  5 read -p 'input y: ' y
  6 #S = $[3*x*y]+$[x**2*4]+$[5*y]+6
  7 S=$[3*x*y+x**2*4+5*y+6]
  8 echo $S
程序 一

 

2. 运算常用的命令:

    a. 用let指示数学运算。可以先将运算的结果赋值给变量b,运算命令是b=let 1 + 2。然后用echo $b来输出b的值。如果没有let,则会输出1+2。

    b. 用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容将先进行数学运算。例如命令echo $[1+2],将输出结果3。

    c. 用expr改变运算顺序。可以用echo `expr 1 + 2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号。
    d. 用bc表示数学运算。可以结合echo命令一起使用,例如:echo “3.21*2” | bc 来计算 3.21*2 这种浮点运算

    e. 使用awk表示数学命令.如:echo 2 | awk '{print $1**32}'  

3、关系操作符

 <  小于

>  大于   

>=  大于等于     

<=  小于等于    

==  等于   

!=  不等于   

&&  逻辑与(都对)   

||  逻辑或(任意对,从左往右)

 

$ 符号在Linux系统里面用于获取一个变量的值,例如:
#!/bin/bash --------指定编译shell环境为bash
STR="Hello World!"----设置STR的变量值为Hello World!
echo $STR ------ 用echo命令读取STR变量的数值。这里如果不加$, 输出结果是STR,加上$,输出结果就是Hello World!。


测试!!!
    比较数字,使用(( )) ###数字与比较符号可以紧邻着
    其他测试使用 [[ ]]  ###里面中括号前后空一格,语法生效
    包含数字比较的混合测试,使用标准语法
程序:验证登录用户与密码是否正确?
验证用户名与密码

  程序:判断文件类型。

判断文件类型

  程序:查询成绩。

  1 #!/bin/bash
  2 
  3 read -p 'input your score: ' score
  4 
  5 if [ $score -eq 100 ];then
  6     echo '完美'
  7 elif [ $score -ge 90 -a $score -lt 100 ];then
  8     echo '优秀'
  9 elif [ $score -ge 60 -a $score -lt 90 ];then
 10     echo '良好'
 11 elif [ $score -ge 0 -a $score -lt 60 ];then
 12     echo '再接再厉'
 13 else
 14     echo '别捣乱!'
 15 
 16 fi
查询成绩

   程序:猜年龄。

  1 #!/bin/bash
  2 oldboyage=99
  3 
  4 read -p 'input oldboy age: ' age
  5 
  6 if [ $age -eq $oldboyage ];then
  7     echo '你真牛逼!'
  8 elif [ $age -gt $oldboyage ];then
  9     echo '太大了!'
 10 elif [ $age -lt $oldboyage ];then
 11     echo '太小了' 
 12 fi
猜年龄

  程序:while循环。

  1 #!/bin/bash
  2 
  3 i=1
  4 
  5 while ((i<10))
  6 do
  7     echo $i
  8     ((i++))
  9     sleep $i
 10 done
while循环1

  程序:for循环。

for循环1
  1 #!/bin/bash
  2 
  3 for i in {1..10}
  4 do
  5     echo $i
  6     sleep $i
  7 done

 




1、如何使用vi/vim显示行号(永久):
posted @ 2017-06-05 15:20  LiChaoAI  阅读(137)  评论(0编辑  收藏  举报