用shell写的一些函数
属于统计系统的一部分,之后会慢慢写出来其它的部分
#获取当前时间
getCurrentTime(){
current_time=`date --date="now" +%Y-%m-%d' '%H:%M:%S`;
echo $current_time;
}
#时间格式的转换
#如:2009-05-14 19:01:12 转换成 2009-05-14-19
formate_date(){
time=$1;
if [ -z "${time}" ]
then
pass;
else
echo $time|sed -n 's/ /-/p'|cut -b1-13
fi
}
#记录日志
logInfo(){
info=$1;
fileName=$2;
#判断文件是否存在,不存在则建立文件
#if [ -e "${fileName}" ]; then
# touch $fileName;
#fi
echo $(getCurrentTime) $info>>$fileName
}
#发送邮件
#第一个参数为主题
#第二个参数为内容
#配置文件的每一行为一个邮箱
send_mail(){
#mailfile="/usr/local/qs/p/config/mail.config"
subject=$1
content=$2
mailfile=$3
#组装邮件的发送地址
mailto=$(cat $mailfile |sed -n '1'p);
maillist=$(cat $mailfile |sed -n '2,$'p);
if [ -n "$maillist" ] ; then
for email in $maillist ;do
mailto=$mailto" -c "$email
done
fi
#发送邮件
echo $content|mail -s $subject $mailto
}
#获取配置文件的值
#配置文件的格式如:key=value
#第一个参数为key
#第二个参数为配置文件,需要绝对路径
#返回value
getConfigValue(){
key=$1;
configFile=$2;
#aa=$key为向awk传递值进去做处理
value=$(awk -F"=" '$1==aa {print $2}' aa=$key $configFile);
echo $value
}
#从url中获取ip地址
#如:http://192.168.1.55/webdav 返回的值是192.168.1.55
getIpByUrl(){
ulr=$1;
#ip=`echo $url |sed -n 's/[a-z:/-]*$//p'|sed -n 's/^[a-z:/-]*//p'`
ip=`echo $url|sed -n 's/^http:\/\/\([^/]*\)\/.*$/\1/p'`
echo $ip
}
#获取日志的文件名
#第一个参数为时间
#第二个参数为配置文件中日志的key值
#第三参数为配置文件
#返回日志的最终名称,其实就是把XXXX-XX-XX-XX替换为时间
getLogName(){
lasthour=$1;
key=$2;
configFile=$3;
value=$(awk -F"=" '$1==aa {print $2}' aa=$key $configFile|sed s/XXXX-XX-XX-XX/"$lasthour"/g );
echo $value
}
#获取下载日志文件的具体路径,若没有该ip的目录,则新建目录
#如:192.168.1.55 若没有该目录,则新建一个192.168.1.55的目录
#第一个参数为路径
#第二个参数为ip地址
getDownPath(){
ip=$2;
path=$1;
rp=$path"/"$ip
if [ ! -e "$rp" ] ; then
mkdir $rp
fi
echo $rp
}
#获取上一层的路径的路径(相当于工作目录)
getWorkPath(){
path=`pwd|sed -n 's/\(\/[a-z]*\)$/ /p'`
echo $path
}
分享到:
相关推荐
"统计系统七----主要执行的shell文件"这个标题暗示我们可能会探讨一个用于数据统计的系统,其中shell脚本起着核心作用。在这个系统中,shell脚本可能是主要的执行程序,用于收集、处理和分析数据。 首先,让我们...
Linux运维-运维系统服务04-Shell脚本d6-Shell函数与正则表达式-02实战案例3统计web
"sqlite-shell-win32-x86-3071300.zip" 是一个针对Windows 32位系统的SQLite命令行外壳程序的压缩包,版本号为3071300,这表明它是SQLite的一个较新版本。 SQLite命令行外壳程序(sqlite3.exe)是用于与SQLite...
7. **函数**:定义和调用Shell函数可以使代码更模块化,便于复用和维护。 8. **错误处理和调试**:使用`set -e`开启退出错误检查,当命令执行失败时脚本会立即终止。`echo`和`printf`用于输出调试信息,`set -x`则...
在Linux或Unix系统中,Shell是用户与操作系统交互的界面,Bash是最常用的Shell之一。 1. **Bash配置文件**: - `/etc/profile`:系统级的初始化文件,对所有用户生效。 - `$HOME/.bash_profile`:用户的个人配置...
在本次实训中,学生将利用VMware虚拟机和Ubuntu 12.04操作系统,通过编写Shell脚本来创建一个学生成绩统计管理系统。这个系统旨在提高成绩管理的效率,提供友好的用户交互界面,并实现一系列成绩处理功能。以下是...
### 实验2-shell及shell编程知识点详解 #### 一、实习目的 - **学习 shell 的功能及相关配置文件**: - 了解 shell 的基本概念及其作为 Linux/Unix 系统的用户界面的作用。 - 掌握 `/etc/profile`、`$HOME/.bash...
Shell脚本是一种在Unix/Linux操作系统中用于自动化任务的编程语言,它基于Bourne Shell或其派生版本,如bash。在这个"shell成绩管理系统"中,我们可以推测作者试图创建一个简单的命令行工具,用于管理学生分数、专业...
Shell编程是嵌入式系统设计中不可或缺的一部分,它为用户提供了与操作系统交互的界面。在嵌入式系统开发过程中,Shell编程通常被用来编写自动化脚本,用于控制硬件设备、管理文件系统、实现网络通信等任务。Shell...
本文将深入探讨Shell函数的基本概念、定义、参数传递以及如何使用它们。 一、函数概述 Shell函数是一组命令的集合,用于封装特定功能。在Shell中,函数的定义是平行的,意味着不能在函数内部定义其他函数,但函数间...
/bin/sh`是一个约定标记,用于告知系统此脚本应使用哪种Shell来解释执行。例如: ```bash #!/bin/sh ``` 在创建脚本文件时,可以使用文本编辑器如`vi`或`vim`来编写脚本。文件的扩展名通常为`.sh`,但这并不是强制...
Bash 提供了函数和点命令,函数可以将一系列命令组合成一个单元,点命令可以将一个文件的内容读取到当前 shell 中。 三、 实习内容 1. 练习课本中有关 shell 的命令 本实验中,我们将练习 Shell 的基本命令,例如...
Shell脚本是用Shell语言编写的程序,通过一系列命令来实现对系统的自动化操作或控制。 #### Shell编程的重要性 Shell编程对于系统管理员和高级用户来说至关重要。它能够极大地提高工作效率,减少重复劳动。Shell...
Linux Shell 是一种命令行解释器,它作为用户与操作系统内核之间的接口,允许用户通过输入命令来执行系统操作。Shell不仅提供了与系统交互的基本功能,还可以进行数据统计、服务监控和自动化任务。在Linux世界中,...
在这个“shell脚本(含图书管理系统)”的压缩包中,我们可以期待找到一些基础到进阶的Shell脚本示例,特别是关于一个图书管理系统的实现。 首先,让我们来理解一下Shell脚本的基本概念。Shell是操作系统的命令解释...
- 使用 `sh $shell_script` 或 `./$shell_script` 来在一个新的子 shell 中执行脚本。 #### SHELL 脚本结构 - **知识点**:SHELL 脚本的基本结构包括: - 循环结构:例如 `for`、`while` 循环。 - 选择结构:...
Shell有多种类型,其中最常见的是Bash Shell(Bourne Again SHell),它是在Unix及类Unix系统(如Linux)上广泛使用的Shell之一。 ### Bash Shell的特点 - **兼容性**:Bash Shell向后兼容早期的Bourne Shell,并且...