shell 的有用函数
|
1.isNumber 2.命令可用 3.当前用户是root |
1.isNumber
判断“字符串”是否是个数字:
declare chkNumber=
isNumber(){
parameter1=$
repParameter1=$(echo $parameter1 | sed 's/[[:digit:]]//g' >/dev/null)
decimalPoint=$(echo $repParameter1 | sed 's/\.//' >/dev/null)
local -i oriLength=${#parameter1}
local -i repLength=${#repParameter1}
local -i decLength=${#decimalPoint}
[ $oriLength -gt ] && [ $repLength -eq ] && let chkNumber=
[ $oriLength -gt ] && [ $repLength -eq ] && [ $decLength -eq ] && let chkNumber=
}
字符串以位置参数形式传递进来,结果由变量“chkNumber”表示(不是数字就返回“0”,是整数返回“1”,是浮点数返回“2”)。
使用案例:判断进程使用的cpu百分比
#!/bin/bash
# ps -C java -o %cpu declare -i CPUPERCENT=
declare -i counter=
declare PROG="java"
declare ITEM1="pcpu"
declare chkNumber=
declare pid="" isNumber(){
parameter1=$
repParameter1=$(echo $parameter1 | sed 's/[[:digit:]]//g' >/dev/null)
decimalPoint=$(echo $repParameter1 | sed 's/\.//' >/dev/null)
local -i oriLength=${#parameter1}
local -i repLength=${#repParameter1}
local -i decLength=${#decimalPoint} [ $oriLength -gt ] && [ $repLength -eq ] && let chkNumber=
[ $oriLength -gt ] && [ $repLength -eq ] && [ $decLength -eq ] && let chkNumber=
} for i in $(ps -C java -o pid,$ITEM1)
do
chkNumber=
let counter=counter%
if [ -eq $counter ]; then
isNumber $i
else
pid=$i
fi if [ $chkNumber -gt ]; then
echo "pid is $pid, cpu used ${i}% by $PROG."
fi let counter++
done
运行效果:
[view@payqa2 ~]$ ./chkCPU
pid is , cpu used 0.0% by java.
pid is , cpu used 0.1% by java.
pid is , cpu used 0.1% by java.
2.命令可用
脚本中,会用到判断命令可用,或者某个rpm包存在。
把需要判断的‘命令’、‘rpm包’分别赋值给变量packages、commands。当脚本调用后,变量 var_checkResult 为0时,表示‘命令’、‘rpm包’都可用、存在。
packages=(tar bzip2 coreutils)
commands=(tar bzip2 md5sum)
declare -i k=
declare -i PackMaxLength=${#packages[@]}
declare -i CommMaxLength=${#commands[@]} isResultOk() {
if [ -eq $var_checkResult ];then
let k=k+
fi
} fun_chkPackages() {
local -i i for((i=; i<PackMaxLength; i++)); do
rpm -q ${packages[$i]}
var_checkResult=$?
isResultOk
done
} fun_chkCommands() {
local -i i for((i=; i<CommMaxLength; i++)); do
env which ${commands[$i]} >/dev/null
var_checkResult=$?
isResultOk
done
} fun_chkPackages
fun_chkCommands
let var_checkResult=CommMaxLength+PackMaxLength-k
3.当前用户是root
脚
shell 的有用函数的更多相关文章
- Linux centosVMware shell中的函数、shell中的数组、
一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function _name() { command ...
- shell流程控制&函数
条件 if-then-elif-then-fi if的条件部分经常使用test EXPRESSION或[ EXPRESSION ]实现,test的用法可以参见test if 条件1 #if 条件1;t ...
- shell实现trim函数-去除字符串两侧的空格(包括tab,space键)
shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...
- shell中的函数、数组、报警系统脚本
1.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 个小单元的名字即可.格式: function f_name() {commond} ...
- shell编程之函数
一.函数定义和调用 函数是Shell脚本中自定义的一系列执行命令,一般来说函数应该设置有返回值(正确返回0,错误返回非0).对于错误返回,可以定义其他非0正值来细化错误.使用函数最大的好处是可避免出现 ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
- 小苏的Shell编程笔记之六--Shell中的函数
http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以 ...
- shell高级-----创建函数
基本脚本函数 1.创建函数 有两种格式可以用来在bash shell脚本中创建函数.第一种采用关键字function.后跟分配给该代码的函数名. function name { commands } ...
- Oracle数据库有用函数
有用函数 DECODE 语法例如以下: DECODE(value, if1, then1, if2,then2,if3,then3, . . . else ) Value 代表某个表的不论什么类型的 ...
随机推荐
- Azkaban介绍+安装部署+实战案例
Azkaban介绍 什么是azkaban?1.工作流的作业调度系统2.通过k.v指令写法描述工作流节点3.可以通过web界面去管理工作流 Azkaban安装部署 2.3.1 准备工作 Azkaban ...
- Apache Kafka监控之KafkaOffsetMonitor
转载自:http://www.cnblogs.com/Leo_wl/p/4564699.html 1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后, ...
- 阅读<SMPTE 274M-2005 1920X1080>笔记
阅读<SMPTE 274M-2005 1920X1080>笔记 1.1080i blank field 2.blank and active line timing Analog Digi ...
- 启动代码和Bootloader区别
很多人都会把两者混淆,所以这里稍微说一下. 启动代码和Bootloader有点类似于类和结构体的关系,也就是说结构体只是一种很特殊很特殊的类,但不能说类是一种结构体. 也就是说可以说启动代码是Boot ...
- NDK学习笔记(二)
花了点时间把pixeliop的部分看完了,拿到开发文档提供的案例稍事修改,把画面左半边压暗. 这个案例重点在于理清pixel_engine()函数中的坐标与scanline的关系. y代表当前正在调用 ...
- SpringMVC-DispatcherServlet配置(Spring-servlet.xml)
Spring-servlet.xml <context:component-scan base-package="com.spring.mvc.controller"/> ...
- elasticsearch 口水篇(2)CRUD Sense
Sense 为了方便.直观的使用es的REST Api,我们可以使用sense.Sense是Chrome浏览器的一个插件,使用简单. 如图: Sense安装: https://chrome.googl ...
- QHBoxLayout移除控件
def clear_layout(widget, layout): buttons = widget.findChildren(QtGui.QPushButton) while layout.item ...
- Web jsp开发学习——Session使用
先展示效果: 导包: 在servlet的doget里创建session 在head里显示session 接下来进行注销的命令 点击注销链接到这个 ...
- 学习笔记之k-nearest neighbors algorithm (k-NN)
k-nearest neighbors algorithm - Wikipedia https://en.wikipedia.org/wiki/K-nearest_neighbors_algorith ...