note_9.1.1_shell脚本逻辑判断

2019-02-16  本文已影响0人  人間失格_430b

bash脚本编程

#!/bin/bash
#description:xxxx
#version:1.0
#author:xxx@xx.xx
#last date:xxxx.xx.xx

  第一行,顶格:#!/bin/bash
  注释信息:#
  代码注释:
  缩进,适度添加空白行;

let VAR=expression
VAR=$[expression]
VAR=$((expression))
VAR=$(expr argu1 argu2 argu3)

注意:有些时候乘法符号需要转义;


练习:

1、写一个脚本
计算/etc/passwd文件中的第10个用户和第20个用户的id号之和;

[root@localhost ~]# bash /tmp/myadd.sh 
11
[root@localhost ~]# cat /tmp/myadd.sh
#!/bin/bash
id1=$(head -1 /etc/passwd|tail -1 |cut -d: -f3)
id2=$(head -10 /etc/passwd|tail -1 |cut -d: -f3)

id_sum=$[$id1+$id2]

echo $id_sum

2、写一个脚本
计算/etc/rc.d/init.d/functions和/etc/inittab文件的空白行数之和;

[root@localhost ~]# bash /tmp/mycount.sh
91
[root@localhost ~]# cat /tmp/mycount.sh
#!/bin/bash
file1=/etc/rc.d/init.d/functions
file2=/etc/inittab

blank1=`grep '^[[:space:]]*$' $file1 |wc -l`
blank2=`grep '^[[:space:]]*$' $file2 |wc -l`

bsum=$[$blank1+$blank2]
echo $bsum

条件测试:

判断某需求是否满足,需要由测试机制来实现;

  如何编写测试表达式以实现所需的测试:
    - 执行命令,并利用命令状态返回值来判断;
      0:成功
      1-255:失败
    - 测试表达式
      test EXPRESSION
      [ EXPRESSION ]
      [[ EXPRESSION ]]

注意:EXPRESSION两端必须有空白字符,否则为语法错误

bash的测试类型:

  数值测试
  字符串测试
  文件测试

   -z "STRING":判断指定的字串是否为空;空则为真,不空则假
   -n "STRING":判断指定的字符串是否不空;不空则真,空则为假

注意:
  1.字符串要加引用
  2.要使用[[ ]]


脚本的状态返回值:

注意:shell进程遇到exit时,即会终止,因此,整个脚本执行即为结束;


练习:

将当前主机名称保存至hostName变量中;
主机名如果为空,或者为localhost.localdomain,则将其设置为www.xxx.com

[root@localhost ~]# cat /scripts/judge.sh
hostName=`hostname`
[ -z "$hostName" -o "$hostName" == "localhost.localdomain" ] && hostname -b www.xxx.com
上一篇下一篇

猜你喜欢

热点阅读