Linux学习笔记 --Bash ScriptsII


# test条件判断 #

test命令可用于评估bash脚本中的表达式。它评估其参数所指定的表达式,如果表达式为true,返回零退出状态,如果表达式为false,则返回非零退出状态。test具有替代语法,使用方括号"[]"将表达式括起来,这样更易于阅读

语法

test EXPRESSION 或 [EXPRESSION]
非零或零长度字符串运算符:test -{n|z} STRING




字符串比较运算符:




数字比较运算符:

-eq##相等
-ne##不相等
-lt##小于
-le##小于等于
-gt##大于
-ge##大于等于




文件状态运算符:

test -{b|c|e|f|d|r|w|x|s|L} FILE/DIRECTORY









二进制文件运算符:

-ef、-nt、-ot




逻辑运算符:

-o、-a、!、&&、||


#检查IP是否ping通#




#加法运算#





#检查文件状态#


while语句




IF语句



IF语句+函数




#用户建立、删除 【函数】#







#expect语句#

在shell中利用expect实现自动应答脚本。

[ root@foundation66 ]#  yum install expect -y


[ root@foundation66 mnt ]# vim ask.sh





[ root@foundation66 mnt ]# vim answer.exp

set timeout 10 ##设置后面所有的expect命令的等待响应的超时时间,单位为秒




#expect语句实现ssh功能#

[ root@foundation66 mnt ]# vim ssh1.exp

#!/bin/expect

set IP [ lindex $argv 0 ]

set PASS [ lindex $argv 1] ##设置变量

spawn ssh root@$IP ##spawn是expect的内部命令,作用是给后面的指令加个壳,用来传递交互指令。

expect { ##expect " "判断上次输出结果里是否包含“ ”的字符串

"yes/no" { send "yes\r"##执行交互动作,相当于手工输入"yes" ;exp_continue##继续执行expect " " }

"password:" { send "$PASS\r" }

}

interact ##执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。否则退出登录

##< expect eof >作用是在输出中搜索文件结束符,如果没有这一行,脚本会立即退出,得不到正确结果。





#获取主机名#

#编辑/mnt/ssh1.exp文件,添加HOSTNAME变量



[ root@foundation66 mnt ]# vim check_host.sh

#!/bin/bash

if ##如果$*不为空

[ -n "$*" ]

then

MAX_LINE=`wc -l $* | awk '{print $1}'` ##定义MAX_LINE值为 $* 即<filename> 的行数

for NUM in `seq 1 $MAX_LINE` ##定义NUM且做for循环

do

IP=`sed -n ${NUM}p $* | awk '{print $1}'` ##定义IP值为 $* 的第NUM行第一列

PASS=`sed -n ${NUM}p $* | awk '{print $2}'` ##定义PASS值为 $* 的第NUM行第二列

/mnt/autosh.exp $IP $PASS hostname | tail -n 1 ##执行 /mnt/autosh.exp $IP $PASS hostname | tail -n 1

done

else

echo "Useage:check_host.sh <filename>"

fi





#设置172.25.254.166及172.25.254.66的DNS







[ root@foundation66 mnt ]# /mnt/check_host.sh /mnt/host



#获取主机用户信息#

[ root@foundation66 mnt ]# vim check_host.sh



[ root@foundation66 mnt ]# /mnt/check_host.sh /mnt/host



#检查服务器的文件系统的磁盘空间占用情况#

[ root@foundation66 mnt ]# vim check_host.sh



[ root@foundation66 mnt ]# /mnt/check_host.sh /mnt/host



#获取主机用户信息#





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值