shell脚本(一)

本文深入讲解Shell脚本的基础知识,包括脚本结构、执行方式、常用命令如date的使用、变量定义与引用、以及逻辑判断的实现。通过本文,读者将能够掌握创建和维护Shell脚本的基本技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20.1 shell脚本介绍
20.2 shell脚本结构和执行
20.3 date命令用法
20.4 shell脚本中的变量
20.5 shell脚本中的逻辑判断

shell脚本介绍

shell是一种脚本语言,可以使用逻辑判断、循环等语法,可以自定义函数。

与其他编程语言不同的是shell没有语言库,许多任务都需要从头实现。但是shell可以调用linux系统命令,这大大扩展了shell脚本的功能。shell脚本可以实现自动化运维,能大大增加我们的运维效率。

shell脚本结构和执行

开头需要加#!/bin/bash,指定解释器。此外,以#开头的行作为解释说明,在写脚本时多写一些注释对方便以后维护。

脚本的名字以.sh结尾,用于区分这是一个shell脚本。

执行方法有两种:

  1. 为脚本文件增加执行权限chmod +x ,然后就可以直接运行:1.sh或者 ./1.sh(相当于相对路径,也可以写绝对路径)
  2. bash 1.sh

查看脚本执行过程 bash -x 1.sh。查看脚本是否语法错误 bash -n 1.sh,没有输出提示就是语法正确。

date命令的用法

date  +%Y-%m-%d, date +%y-%m-%d #以年月日的格式输出
date  +%H:%M:%S = date +%T #输出时间
date +%s -d “2018-09-09 18:50:20” #时间戳,距离1970年1月1日的时间秒
date -d @1504620492 #时间戳,与上面互换
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 第 二 个 , 2 第二个, 2#表示参数个数。数学运算a=1;b=2; c= ( ( (( ((a+ b ) ) 或 者 b))或者 b))[ a + a+ a+b]。

shell脚本中的逻辑判断

  • 格式1:if 条件 ; then 语句; fi
  • 格式2:if 条件; then 语句; else 语句; fi
  • 格式3:if …; then … ;elif …; then …; else …; fi

逻辑判断符号: -gt (>); -lt (<); -ge (>=); -le (<=); -eq (==); -ne (!=)。 注意使用时括号内变量、-gt等左右都有空格,类似这样写逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]。

可以使用 && || 结合多个条件:
if [ $a -gt 5 ] && [ $a -lt 10 ]; then echo “hello” ;fi
if [ $b -gt 5 ] || [ $b -lt 3 ]; then echo “hello”;fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值