echo 'Please confirm the config, press y if you want to upload dss ?[y or n]'
#确认参数配置正确与否,正确输入y,程序继续执行,不正确输入n,程序退出
while read flag
do
case $flag in
y|Y|yes|Yes|YES) echo 'yes is selected, start upload dss!'
break
;;
n|N|no|NO) echo 'no is selected, shell will exit!'
exit 0
;;
*) echo 'Unknown command, please try again!'
continue
;;
esac
done
echo 'Please confirm the config, press y if you want to upload sersrv ?[y or n]'
#确认参数配置正确与否,正确输入y,程序继续执行,不正确输入n,程序退出
while read flag
do
case $flag in
y|Y|yes|Yes|YES) echo 'yes is selected, start upload sersrv!'
break
;;
n|N|no|NO) echo 'no is selected, shell will exit!'
exit 0
;;
*) echo 'Unknown command, please try again!'
continue
;;
esac
done
echo 'Please confirm the config, press y if you want to upload sersrv ?[y or n]'
#确认参数配置正确与否,正确输入y,程序继续执行,不正确输入n,程序退出
while read flag
do
case $flag in
y|Y|yes|Yes|YES) echo 'yes is selected, start upload sersrv!'
break
;;
n|N|no|NO) echo 'no is selected, shell will exit!'
exit 0
;;
*) echo 'Unknown command, please try again!'
continue
;;
esac
done
}
#调用FTP脚本上传DSS
FtpDSS()
{
#开始循环上传DSS文件
for loop in `cat $DSS_HOST_IP_FILE | awk '{print $1}'`
do
echo ==========================FTP DSS to the host[$loop]==========================
perl -p -i -e 's/127.0.0.1/'$loop'/' $DSS_CSHRC
./FTP-UPLOAD.sh $loop $DSS_USER $DSS_PASSWORD $DSS_GZ_NAME $DSS_CSHRC
perl -p -i -e 's/'$loop'/127.0.0.1/' $DSS_CSHRC
done
}
主要设计到的知识点有,read等待用户输入,并更具输入做出不同的响应,以及从配置文件加载参数grep 【关键字】 | awk ‘{print $2}’,将参数以打屏方式打echo出来,使用for循环对ip地址进行循环for loop in cat [文本] | awk ‘{print $1}’,使用perl命令替换文本中的关键字perl –p –i –e ‘s/[关键字]/[替换后关键字]/’ [文本]。SHELL参数的制作,使用read读取用户输入,判断相应的输入调用相应的函数,做好把每个功能点都封装成一个函数以供其他地方重复调用。使用*号来匹配其他输入。
还用到主要的流程控制语句,if else fi while do done for loop in 【】 do done
使用ftp命令:
#!/bin/sh
ftp -i -n $1 <<!
user $2 $3
put $4
put $5
quit
!
登录FTP后就进入ftp交互界面,脚本需要特殊处理以防执行中断。
处理方式如下:
ftp -inv<<!
//your cmd
……
!