key words : 执行多个命令的方法 、 创建与执行脚本、反引号`` 、数学计算
  8.1 执行多个命令的方法:
 1、在每个命令间用 ; 隔开 
 [root@localhost ~]# date;who
 2011年 05月 29日 星期日 08:44:32 EDT
 root     :0           2011-05-29 08:32
 root     pts/0        2011-05-29 08:33 (:0.0)
 2、在每个命令间用 && 隔开,表示当前一个命令执行成功才执行下一个命令,常用在自动安装的script中
 [root@localhost ~]# liting&&who
 bash: liting: command not found
 [root@localhost ~]#
 3、|| : 当前一个命令执行成功时就不会往下执行,若失败就继续往下执行。
 [root@localhost ~]# who||liting
 root     :0           2011-05-29 08:32
 root     pts/0        2011-05-29 08:33 (:0.0)
 [root@localhost ~]#
 [root@localhost ~]# liting||who
 bash: liting: command not found
 root     :0           2011-05-29 08:32
 root     pts/0        2011-05-29 08:33 (:0.0)
 [root@localhost ~]#
  8.2 创建脚本
 bash shell程序结构
 大概由变量设置、内置命令、shell语法结构、函数及其他命令行的程序组成。
 例:
 #!/bin/bash                                          //表示用/bin/bash编译执行这个script文件
  functionshow_name() {                                                       //定义一个函数
 echo "今天是$1, 你是$2,来自$3"
 }
  name="$1"// 三个变量设定
 ip="192.168.0.9"
 today=`date +%F`
  if [ $# !=1 ]; then//if判断语法结构
 echo "Usage: ./$0 [使用者名称]"
 exit
 fi
  show_name "$today" "$name" "$ip"// 调用show_name函数
  sleep 5// 暂停5秒
  echo//输出空行
 echo "bye-bye :)"
  主意事项:
 1、脚本文件第一行要指定所用的shell
 例如: #!/bin/bash
 2、给脚本添加可执行权限
 例:
 [root@localhost ~]# vim bb
 #!/bin/bash
 date
 who
 [root@localhost ~]# ./bb
 2011年 05月 29日 星期日 08:51:30 EDT
 root     :0           2011-05-29 08:32
 root     pts/0        2011-05-29 08:33 (:0.0)
 [root@localhost ~]#
   检查script语法
 [root@localhost ~]# bash -v aa
 [root@localhost ~]# bash -n aa
 [root@localhost ~]# bash -x aa
  执行bash script:
 1、切换到脚本所在的目录
 ./scriptname 或 bash scriptname
 2、直接输入脚本所在绝对路径
 3、.   绝对路径
  8.4 反引号``
 反引号允许将shell命令的输出直接赋值给变量
 例:
 [root@localhost ~]# test=`date`直接把date的结果赋给test
 [root@localhost ~]# echo $test
 2011年 07月 20日 星期三 20:56:10 EDT
 每天23点48分以当天的日期命名备份一次messages日志文件
 [root@localhost ~]# cat log
 #!/bin/bash
 today=`date +%y%m%d`
 cat /var/log/messages > messages.$today
 [root@localhost ~]# chmod u+x log
 [root@localhost ~]# crontab -e
 58 23 * * *./log
  8.7 数学计算
 1、expr命令—限制较多
 [root@localhost ~]# expr 12 + 2          注意符号和数字直接要有空格
 14
 [root@localhost ~]# expr 12 * 2
 expr: 语法错误
 [root@localhost ~]# expr 12 \* 2       遇到通配字符要先转义
 24
 [root@localhost ~]# expr 12 / 2
 6
 [root@localhost ~]#
  2、使用括号—推荐使用
 例:
 [root@localhost ~]# cc=$[1 * 4]
 [root@localhost ~]# echo $cc
 4
 [root@localhost ~]# cat count
 #!/bin/bash
 var1=$[50 * 2]
 var2=45
 var3=$[$var1 / $var2]
 echo the final result is $var3
 [root@localhost ~]# ./count
 the final result is 2
 [root@localhost ~]#
 bash shell   只支持整数算法,对于实际运算是个较大的限制,可以用内置的bash(bc)计算器解决
 bc计算器可以识别:
 数字(整型和浮点型)
 变量(简单的变量和数组)
 注释(以英镑符号开始的行或C语言的/**/对)
 表达式
 编程语句(例如if-then)
 函数
 例:
 简单的加减:
 [root@localhost ~]# bc
 bc 1.06
 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
 This is free software with ABSOLUTELY NO WARRANTY.
 For details type `warranty'.
 2+2
 4
 2.5*2
 5.0
 3.14159*(20+192)
 666.01708
 quit
 [root@localhost ~]#
 识别变量:
 [root@localhost ~]# bc -q
 var1=10
 var2=2
 var1*2
 20
 var2=var1-9
 print var2
 quit
 [root@localhost ~]#
 控制小数点:
 [root@localhost ~]# bc -q
 3/5
 0
 scale=3
 3/5
 .600
 quit
 在脚本中使用bc
 [root@localhost ~]# cat bc
 #!/bin/bash
 var1=`echo "scale=4;3.14/5" | bc`
 echo the answer is $var1
  [root@localhost ~]# ./bc
 the answer is .6280
 [root@localhost ~]#
   
转载于:https://blog.51cto.com/oneliting/650928