06-shell-函数
2022/4/5 7:19:21
本文主要是介绍06-shell-函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
root@ubuntu2004:~# cat send_email.sh #!/bin/bash email_send='18*@qq.com' email_passwd='授权码' email_smtp_server='smtp.qq.com' . /etc/os-release msg_error() { echo -e "\033[1;31m$1\033[0m" } msg_info() { echo -e "\033[1;32m$1\033[0m" } msg_warn() { echo -e "\033[1;33m$1\033[0m" } color () { RES_COL=60 #横向距离,不能太小 MOVE_TO_COL="echo -en \\033[${RES_COL}G" SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_WARNING="echo -en \\033[1;33m" SETCOLOR_NORMAL="echo -en \E[0m" echo -n "$1" && $MOVE_TO_COL #输出文字 echo -n "[" if [ $2 = "success" -o $2 = "0" ] ;then #成功绿色,失败红色 ${SETCOLOR_SUCCESS} echo -n $" OK " elif [ $2 = "failure" -o $2 = "1" ] ;then ${SETCOLOR_FAILURE} echo -n $"FAILED" else ${SETCOLOR_WARNING} echo -n $"WARNING" fi ${SETCOLOR_NORMAL} echo -n "]" echo } install_sendemail () { if [[ $ID =~ rhel|centos|rocky ]];then rpm -q sendemail &> /dev/null || yum install -y sendemail elif [ $ID = 'ubuntu' ];then dpkg -l sendemail &>/dev/null || { apt update; apt install -y libio-socket-ssl-perl libnet-ssleay-perl sendemail ; } else color "不支持此操作系统,退出!" 1 exit fi } send_email () { local email_receive="$1" local email_subject="$2" local email_message="$3" sendemail -f $email_send -t $email_receive -u $email_subject -m $email_message -s $email_smtp_server -o message-charset=utf-8 -o tls=yes -xu $email_send -xp $email_passwd [ $? -eq 0 ] && color "邮件发送成功!" 0 || color "邮件发送失败!" 1 } if [ $# -ne 3 ];then color "脚本参数不正确!" 1 msg_info "Usage: `basename $0` <mail_address> <subject> <message>" exit 1 fi install_sendemail send_email "$1" "$2" "$3"
root@ubuntu2004:~# ./send_email.sh 81X@qq.com Winter "Are you OK"
$# 表示提供到shell脚本或者函数的参数总数; $1 表示第一个参数。
[root@rocky script]# cat send_email.sh #!/bin/bash email_send='29308620@qq.com' email_passwd='dgezyimkdswwbhea' email_smtp_server='smtp.qq.com' . /etc/os-release msg_error() { echo -e "\033[1;31m$1\033[0m" } msg_info() { echo -e "\033[1;32m$1\033[0m" } msg_warn() { echo -e "\033[1;33m$1\033[0m" } color () { RES_COL=70 MOVE_TO_COL="echo -en \\033[${RES_COL}G" SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_WARNING="echo -en \\033[1;33m" SETCOLOR_NORMAL="echo -en \E[0m" echo -n "$1" && $MOVE_TO_COL echo -n "[" if [ $2 = "success" -o $2 = "0" ] ;then ${SETCOLOR_SUCCESS} echo -n $" OK " elif [ $2 = "failure" -o $2 = "1" ] ;then ${SETCOLOR_FAILURE} echo -n $"FAILED" else ${SETCOLOR_WARNING} echo -n $"WARNING" fi ${SETCOLOR_NORMAL} echo -n "]" echo } install_sendemail () { if [[ $ID =~ rhel|centos|rocky ]];then rpm -q sendemail &> /dev/null || yum install -y sendemail elif [ $ID = 'ubuntu' ];then dpkg -l sendemail &>/dev/null || { apt update; apt install -y libio-socket-ssl-perl libnet-ssleay-perl sendemail ; } else color "不支持此操作系统,退出!" 1 exit fi } send_email () { local email_receive="$1" local email_subject="$2" local email_message="$3" sendemail -f $email_send -t $email_receive -u $email_subject -m $email_message -s $email_smtp_server -o message-charset=utf-8 -o tls=yes -xu $email_send -xp $email_passwd [ $? -eq 0 ] && color "邮件发送成功!" success || color "邮件发送失败!" failure } if [ $# -ne 3 ];then color "脚本参数不正确!" 1 msg_info "Usage: `basename $0` <mail_address> <subject> <message>" exit 1 fi install_sendemail send_email "$1" "$2" "$3"
这篇关于06-shell-函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器