文章目录
1. 将实现方法封装在函数中,需要使用的时候直接引用
此部分内容部分引用于:https://blog.csdn.net/hantoy/article/details/114926961
#!/bin/sh
########## 通用工具函数实现功能“按任意键继续” #########
function get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
function pause()
{
# 启用功能的开关 1开启|其它不开启
enable_pause=1
# 判断第一个参数是否为空,约定俗成的写法
if [ "x$1" != "x" ]; then
echo $1
fi
if [ $enable_pause -eq 1 ]; then
# echo "Press any key to continue!"
echo "按任意键继续!"
char=`get_char`
fi
}
function isOK()
{
if [ $1 -eq 0 ]; then
echo $2
else
pause "执行失败,退出程序!"
exit
fi
}
########## 通用工具函数实现功能“按任意键继续” #########
2. 在实际场景中调用函数
# 删除.jar文件
rm -f /home/patch/roc-jar/*.jar
isOK $? "删除jar文件成功!"
cp /home/share/FTP/ROC/v2prod/*.jar /home/patch/roc-jar/
isOK $? "复制需要更新的jar文件成功!"
pause
或者
# 删除.jar文件
rm -f /home/patch/roc-jar/*.jar
if [ $? -eq 0 ]; then
echo "删除jar文件成功!"
cp /home/share/FTP/ROC/v2prod/*.jar /home/patch/roc-jar/
if [ $? -eq 0 ]; then
pause "复制需要更新的jar文件成功!"
else
pause "复制失败!"
fi
else
pause "删除文件失败!"
fi
3. if [ “x$1” != “x” ] 说明
if [ "x$1" != "x" ]; then
# $1:脚本的第一个外置参数
# 比如:pause a b,那么$1=a, "x$1"就等于"Xa",带入到这里就是if["xa" != "x"]
# 这样写的主要目的是避免编译错误,如果这样写if[$1=$2]如果$1是空那么编译可能会出错
4. 通过read命令实现按任意键继续
# Linux read命令用于从输入中读取单行数据
read -p "按任意键继续!"