shell基础(一)

 

shell基础(一)

1、shell脚本是什么
    它是一种脚本语言,并非编程语言,可以使用一些逻辑判断、循环等语法。是系统命令的集合。shell脚本可以实现自动化运维,大大增大我们的工作效率


2、shell脚本结构
#!/bin/bash开头,#用于注释
bash -x可以显示脚本执行过程


3、date
date显示时间 ,如2018年 02月 01日 星期四 11:09:06 CST
date +%Y  显示四位年份,如2018
date +%M 显示分钟,如09
date +%D  显示日期,如02/01/18
date +%H 显示小时,如11
date +%S 显示秒,如06
date +%y  显示两位年份,如18
date +%m 显示两位月份,如2
date +%d 显示两位日期,如1
date +%h 显示中文月份,如2月
date +%s 显示时间戳,从1970年1月1日0点0分到现在经历了多少秒(美国纽约时间)
date +%W 表示全年第几周,如05
date +%w 表示星期几,如4


时间戳的应用:
date -d @100  


date +%F
date +%T
date +%y-%m-%d
date +"%y-%m-%d %H:%M:%S "
date +"%F %T"


date -d "-1 day" +"%F %T"  查看前一天日期,下面依次类推
date -d "+1 month" +"%F %T"
date -d "+1 year" +"%F %T"
date -d "-10 hour" +"%F %T"
date -d "+10 min" +"%F %T"
date -d "+10 sec" +"%F %T"



4、变量
a、变量值引用使用$
b、交互变量使用:

#!/bin/bash
#用户交互脚本 
read -p "请输入一个数字: " num
echo $num

 

c、内置变量
$0 $1 $2 $# 分别表示脚本或命令本身,第一个参数,第二个参数,参数总数量。如
vim 3.sh

#!/bin/bash
#内置变量 $0 $1 $2 $#
echo "\$1=$1"
echo "\$2=$2"
echo "\$3=$3"
echo "\$#=$#"
echo "\$0=$0"

 


执行:sh 3.sh a b c d e




5、数学运算
举例:
a=1;b=2
c=a+b
c=$a+$b  
c=$[$a+$b]
c=[$a+$b]
c=$($a+$b)
c=$(($a+$b))




6、逻辑判断
a、if  ,等于== 或者eq,小于-lt,大于-gt,大等于ge,小于等于 le,不等于!=或者ne。如果要使用> <,if判断条件要写成如下格式:
if (($a>3))

 

 

 

 

 

 

#!/bin/bash
#if逻辑判断1
read -p "请输入一个数字: " num
echo $num
if [ $num == 1 ]
then
     echo "$num is true"
else 
     echo "$num is false"
fi

#!/bin/bash
#if逻辑判断2
read -p "请输入一个数字: " num
echo $num
if [ $num == 10 ]
then
     echo "$num is true"
elif [$num -lt 10]
then
     echo "$num <10"
else
     echo "$num >10"
fi



b、并且&& 、-a ,或者|| 、 -o,取余运算用%。

 

#!/bin/bash
#if逻辑判断3
read -p "请输入一个数字:" n
n2=`echo "$n"|grep -E '[^0-9]' $n|wc -l`
if [ $n2 != 0]
then
   echo "你输入的不是数字,请重新输入"
   exit 1
fi
n1=$[$n%2]
if [ $n1 -eq 0 ]
then
     echo "你输入的数字是偶数"
else 
      echo "你输入的数字是奇数"
fi





c、-e判断是否存在某个文件后文件夹,-f 判断是否存在某个文件,-d判断是否存在某个文件夹,-r判断某个文件是否可读,-x判断某文件是否可执行,-w判断某文件是否可写;

 

if [ -e 1.sh ]; then echo "1.sh exist"; fi
if [ ! -e 1.sh ]; then echo "1.sh does not exist"; fi
[ -f 1.sh ] && echo "1.sh exists"
[ -f 12.sh ] || echo "1.sh exits"
[ -w 1.sh ] && echo "1.sh can be wirtten"
 


d、if还可以把一条命令的执行结果作为判断条件,当一条命令执行成功,会返回0,if会判断一条命令返回值是否等于0,如果返回值等于0,则条件成立,否则条件不成立。

 

#!/bin/bash
#if逻辑判断4
read -p "请输入一个数字:" n
#n2=`echo "$n"|grep -E '[^0-9]' $n|wc -l`
if echo $n |grep -q '[^0-9]'
#$n中有非数字字符,则grep -q命令执行成功,相当于1,否则相当于0
then
   echo "你输入的不是数字,请重新输入"
   exit 1
fi
n1=$[$n%2]
if [ $n1 -eq 0 ]
then
     echo "你输入的数字是偶数"
else 
      echo "你输入的数字是奇数"
fi



e、date相关脚本

 

#!/bin/bash
#date相关脚本
d=`date +%F`
exec > /tmp/$d.log 2>&1
echo "Begin at `date`"
ls /tmp/ssdfsf/
cd /sddfsfsdf/
echo "End at `date`"


exec > /tmp/$d.log 2>&1 中,2>表示错误重定向,&1表示前面的文件名$d.log ,exec一般放在脚本开头,表示exec下面的命令的输出信息全部定向到exec后面定义的日志中去,整句表示下面执行的命令无论正确还是错误的显示信息都输入到$d.log中。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值