sm702 发表于 2018-8-19 07:15:03

shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量

Shell脚本介绍
  shell是一种脚本语言blog.lishiming.net(阿铭的博客,可以去里面找shell习题)
  可以使用逻辑判断、循环等语法
  可以自定义函数,减少重复代码
  shell是系统命令的集合
  shell脚本可以实现自动化运维,能大大增加我们的运维效率
Shell脚本结构和执行
  开头需要加#!/bin/bash
  以#开头的行作为解释说明
  脚本的名字以.sh结尾,用于区分这是一个shell脚本
  写一个简简单的脚本
  #!/bin/bash
  #Linletao
  #2018-5-29
  echo llt
  w
  执行方法有两种
  1.chmod +x 1.sh; ./1.sh
  # chmod +x 1.sh
  # ./1.sh
  llt
  19:50:36 up 30 min,1 user,load average: 0.00, 0.01, 0.05

  USER   TTY      FROM             LOGIN@>  root   pts/0    192.168.218.1    19:40    4.00s0.10s0.00s /bin/bash ./1.sh
  2.bash 1.sh
  # bash 1.sh
  llt
  19:51:10 up 31 min,1 user,load average: 0.00, 0.01, 0.05

  USER   TTY      FROM             LOGIN@>  root   pts/0    192.168.218.1    19:40    6.00s0.10s0.01s w
  3.sh 1.sh
  # sh 1.sh
  llt
  19:52:10 up 32 min,1 user,load average: 0.00, 0.01, 0.05

  USER   TTY      FROM             LOGIN@>  root   pts/0    192.168.218.1    19:40    2.00s0.11s0.01s w
  查看脚本执行过程 bash -x 1.sh
  # bash -x 1.sh

[*]echo llt  llt
[*]w  19:52:49 up 33 min,1 user,load average: 0.00, 0.01, 0.05

  USER   TTY      FROM             LOGIN@>  root   pts/0    192.168.218.1    19:40    1.00s0.10s0.00s bash -x 1.sh
  查看脚本是否语法错误bash -n 1.sh
  写一个错误脚本
  #!/bin/bash
  #Linletao
  #2018-5-29
  echo llt
  w
  for i in 'seq 1 10'
  do
  echo $i
  这里面没有用done结尾
  # bash -n 1.sh
  1.sh:行10: 语法错误: 未预期的文件结尾
  这样能检测出脚本的语法错误
date命令用法
  date+%Y-%m-%d, date +%y-%m-%d 年月日
  Y为四位的年,如2017。y为两位的年,如17
  m为月份。M为分钟
  d为日期。D可以直接标记年月日,比如 date +%D    05/29/18
  我们也可以将他们组合在一起
  # date +%y%m%d
  180529
  也可以这样执行,data+%F
  # date +%F
  2018-05-29
  date+%H:%M:%S = date +%T 时间
  # date+%H:%M:%S
  20:31:26
  H为小时
  M为分钟
  S为秒。
  时间也可以用date +%T来显示
  # date +%T
  20:26:58
  date +%s时间戳,他的依据是1970年1月1日0点0分到现在过去了多少秒
  # cal
  五月 2018
  日 一 二 三 四 五 六
  12345
  6789 10 11 12
  13 14 15 16 17 18 19
  20 21 22 23 24 25 26
  27 28 29 30 31
  以日历的形式查看日期
  date -d "+1day"一天后
  date -d "-1 day"一天前
  date -d "-1 month" 一月前
  date -d "-1 min"一分钟前
  date +%w, date +%W 星期
  w为周。W为今年的第几周。
Shell脚本中的变量
  当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
  使用条件语句时,常使用变量    if [ $a -gt 1 ]; then ... ; fi
  引用某个命令的结果时,用变量替代   n=wc -l 1.txt
  写和用户交互的脚本时,变量也是必不可少的read -p "Input a number: " n; echo $n   如果没写这个n,可以直接使用$REPLY
  内置变量 $0, $1, $2…    $0表示脚本本身,$1 第一个参数,$2 第二个 ....       $#表示参数个数
  数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

页: [1]
查看完整版本: shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量