• Long Live Kubernetes!
  • 可关注微信公众第一时间知晓网站动态。 微信公众号
  • Long Live Linux!
  • 您觉得本站非常有看点,可以收藏本站,本站将持续推出高质量文章!
  • This site has been created and is maintained by and is the sole property of Yok8s.com. No part of this site may be copied or reproduced without express written consent from the authors of this site.

Shell脚本中常用自定义函数

实战脚本 Rocloong 来源:博客园 2个月前 (10-15) 45次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

Shell脚本中,你可以定义各种函数来执行不同的任务。以下是20个常用的自定义函数示例,涵盖了从文件操作、文本处理到系统监控等多个方面:

检查文件是否存在

file_exists() { 
   [ -f "$1" ] && echo "File exists." || echo "File does not exist." 
}

检查目录是否存在

dir_exists() { 
   [ -d "$1" ] && echo "Directory exists." || echo "Directory does not exist." 
}

获取文件大小

get_file_size() { 
   du -sh "$1" 2>/dev/null | cut -f1 
}

列出目录中的所有文件

list_files() { 
    find "$1" -maxdepth 1 -type f -print 
}

检查命令是否可用

command_exists() { 
    command -v "$1" >/dev/null 2>&1 
}

获取当前日期

current_date() { 
    date +"%Y-%m-%d" 
}

获取当前时间

current_time() { 
    date +"%H:%M:%S" 
}

计算两个日期的差值

date_diff() { 
    date -d "$2" +%s -d "$1" +%s | awk '{print $1 - $2}' | xargs -I {} date -d @-{} +%jd 
}

打印彩色文本

print_color() { 
    local text=$1 
    local color=$2 
    case "$color" in 
       red) 
          echo -e "\033[31m$text\033[0m" 
          ;; 
       green) 
          echo -e "\033[32m$text\033[0m" 
          ;; 
       yellow) 
          echo -e "\033[33m$text\033[0m" 
          ;; 
       blue) 
          echo -e "\033[34m$text\033[0m" 
          ;; 
       *) 
          echo "$text" 
          ;; 
    esac 
}

延时执行

delay() { 
    sleep "$1" 
}

检查是否是root用户

is_root() { 
    [ "$(id -u)" -eq 0 ] && echo "Root user" || echo "Not root user" 
}

获取IP地址

get_ip() { 
    hostname -I | awk '{print $1}' 
}

生成随机字符串

generate_random_string() { 
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1 
}

检查端口是否占用

is_port_open() { 
    nc -zv "$1" 2>/dev/null | grep -q open 
}

重启服务

restart_service() { 
    systemctl restart "$1" 
}

检查服务状态

service_status() { 
    systemctl is-active --quiet "$1" 
}

获取最后修改的文件

last_modified_file() { 
    ls -t | head -n 1 
}

计算目录中文件的数量

count_files() { 
    find "$1" -type f | wc -l 
}

清空文件内容

empty_file() { 
    > "$1" 
}

发送邮件

send_email() { 
    echo "$2" | mail -s "$1" "$3" 
}

请注意!这些函数可能需要根据具体环境和需求进行调整。例如,发送邮件的函数依赖于系统上的mail命令,而该命令的配置和使用可能因系统而异。同样,检查服务状态和使用systemctl的函数适用于使用systemd的系统。在不支持这些工具的系统上,需要使用不同的命令或方法来实现相同的功能。

未完待续。。。


《Shell脚本中常用自定义函数》版权归作者所有,如需转载请注明出处,并附带文章链接地址,侵权必究!!!
喜欢 (1)
[]
分享 (0)
Rocloong
关于作者:
善战者无赫赫战功!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到