Shell2

Posted 百川汇海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell2相关的知识,希望对你有一定的参考价值。

运算:+  -  *  /(取商)  %(求模,取余) **(次方)

  \也是屏蔽符号,只屏蔽后面一个符号的特殊意义
  ‘’可以屏蔽之间的所有符号的特殊意义

  expr 数字1  \*  数字2     (屏蔽掉*的特殊意义,*的特殊意义代表所有)
  echo $[数字1  \*  数字2]

[[email protected] ~]# a=3
[[email protected] ~]# b=5
[[email protected] ~]# echo $[a + b]   
8
[[email protected] ~]# echo $[$a + $b]
8
[[email protected] ~]# echo $[2*3]
6
[[email protected] ~]# echo $[2**3]
8
[[email protected] ~]# echo $[2**4]
16

##################################################
x++   x=x+1
x--   x=x-1
x+=2  x=x+2
x+=5  x=x+5
x*=5  x=x*5
x/=2  x=x/2

# x=1
# y=2
# let z=x+y      计算但不显示
# echo $z        显示出来
3
################################################
bc 计算器  可以处理小数运算  
quit 退出
scale=数字1    指定结果的小数点的位数为  数字1位  (加减乘法运算不行)
# echo "scale=4;10/3"|bc
3.3333
# echo "scale=2;10/3"|bc
3.33
# echo "scale=2;3.568+2.265"|bc
5.833
# echo "scale=2;3.568-2.265"|bc
1.303
# echo "scale=2;3.568*2.265"|bc
8.081

# echo "2>9"|bc   做逻辑运算
0
# echo "9>2"|bc
1
##################################################
判断:字符串、数字、文件或目录
语法格式:
[   判断内容  ]           注意判断内容与[]有空格
1、字串:
    [  "abc" == "xyz"  ]
    [  "$USER" == "root" ]
    [  "abc" != "xyz"  ]
    # echo $?  查看上面的判断结果是否正确 0表示对、1表示错

# [ "xyz" == "xyz" ]
# echo $?
0

# [ -z $dachui]     查看变量dachui的值是否等于zero,看变量dachui的值是否为空值
# echo $?
0

# dachui=1
# [ -z $dachui ]
# echo $?
1

####################################################################

想在一行内,打多个命令

1、 ; &&  ||

A && B  执行A,仅当A成功,才执行B
A || B  执行A,仅当A失败,才执行B
A;B    执行A,执行B

# [ root == root ] && echo Yes || echo No    执行Yes
Yes
# [ tom == root ] && echo Yes || echo No   执行No
No

2、判断数字:

    -eq:等于         equal
    -ne:不等于      no  equal
    -gt:大于         greater than
    -ge:大于等于   greater or equal
    -lt:小于         less than
    -le:小于等于   less or equal

3、文件或目录
   -e:是否存在exist
   -f:是否存在,且是文件file
   -d:是否存在,且是目录directory
   -r:是否可读read
   -w:是否可写write
   -x:是否可执行execute

超级管理员即使删除了r权限,依然可读。
但是删除了x权限后,即使是超级管理员也不能执行。
可以使用超级管理员chmod命令赋予自己执行权限
[ ! -d /abc ] && mkdir /abc
cp a.txt /abc/
[ -d /abc ] || mkdir /abc
cp a.txt /abc/

if语法:
  1、单分支
    if [ 判断 ]; then 命令
    fi
或者
    if [ 判断 ]
       then  命令
    fi   
 
 rpm -q net-tools   查看     netstat -antpul |grep 80    #查看端口号80 判断httpd服务是否启用
 systemctl status httpd                               #直接查看httpd服务状态
如果80端口未启动,则启动http
1.有没有包 rpm -q net-tools
    if [ $? -ne 0 ]; then
                安装
    fi

  2、双分支
    if [ 判断 ];then
                 命令
    elif
                 命令
    fi
ping -W1 192.168.1.1  #等待时间1秒,没回馈就判断为失败
ping -c2 192.168.1.1  #ping的次数为2次,不通就判断为失败
ping -i0.2 192.168.1.1 #ping的间隔时间为0.2秒

  3、多分支(多次判断)
     if [ 判断1 ];then
               命令
     elif [ 判断2 ];then
               命令
     elif [ 判断3 ];then
               命令
     else
               命令
     fi





























































































































































以上是关于Shell2的主要内容,如果未能解决你的问题,请参考以下文章