Bendi新闻
>
shell脚本中常用的自定义函数
shell脚本中常用的自定义函数
4月前
在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的系统。在不支持这些工具的系统上,你需要使用不同的命令或方法来实现相同的功能。
链接:https://www.cnblogs.com/ydswin/p/18051064
(版权归原作者所有,侵删)
微信扫码关注该文公众号作者
来源:马哥Linux运维
相关新闻
一文总结Excel最常用的10个函数!拿去套用!Python中常用内置函数轻松用gzexe加密你的Shell脚本:保护代码安全的实用指南Pylon框架:在PyTorch中实现带约束的损失函数还这样玩 shell 脚本,就没有见过被裁的~python函数的万能参数超级难的函数式大模型应用,算法专家会怎么解题?套用一个 shell 脚本,可助你排查 Linux 系统 CPU 100% 异常问题Go 的函数,方法和接口Bun 为 JavaScript 和 TypeScript 开发者提供了一个跨平台的 ShellJEP 447 已发布,可在构造函数的 super()调用之前执行语句分享 Linux 下一个强大的现代 Shell 历史记录NeurIPS 2023 & MICCAI 2023:可兼容软标签的语义分割损失函数我宣布,VLOOKUP已经过时了!这个函数,才是最牛掰的!这就是OpenAI神秘的Q*?斯坦福:语言模型就是Q函数AI学会篡改奖励函数、欺骗研究者!Claude团队:无法根除的行为,令人不安外企春招丨Shell壳牌2024届春招持续热招中!500强外企,WLB,女性友好,2年工作经验可投,适合留学生Shell壳牌2024届春招持续热招中!500强外企,WLB,女性友好,2年工作经验可投,适合留学生掌握这 12个 Linux Shell 文本处理技巧,谁还不是个运维专家?神经网络可能不再需要激活函数?Layer Normalization也具有非线性表达ICML 2024 | 神经网络可能不再需要激活函数?LayerNorm也具有非线性表达!SpringBoot + 事务钩子函数,打造高效支付系统!最新研究:大模型已涌现出欺骗能力!钻漏洞、偷偷篡改奖励函数,GPT-4欺骗人类高达99.16%【C语言】内联函数总结