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 的有用函数的更多相关文章

  1. Linux centosVMware shell中的函数、shell中的数组、

    一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function _name() { command ...

  2. shell流程控制&函数

    条件 if-then-elif-then-fi if的条件部分经常使用test EXPRESSION或[ EXPRESSION ]实现,test的用法可以参见test if 条件1 #if 条件1;t ...

  3. shell实现trim函数-去除字符串两侧的空格(包括tab,space键)

    shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...

  4. shell中的函数、数组、报警系统脚本

    1.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 个小单元的名字即可.格式: function f_name() {commond} ...

  5. shell编程之函数

    一.函数定义和调用 函数是Shell脚本中自定义的一系列执行命令,一般来说函数应该设置有返回值(正确返回0,错误返回非0).对于错误返回,可以定义其他非0正值来细化错误.使用函数最大的好处是可避免出现 ...

  6. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  7. 小苏的Shell编程笔记之六--Shell中的函数

    http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以 ...

  8. shell高级-----创建函数

    基本脚本函数 1.创建函数 有两种格式可以用来在bash shell脚本中创建函数.第一种采用关键字function.后跟分配给该代码的函数名. function name { commands } ...

  9. Oracle数据库有用函数

    有用函数 DECODE 语法例如以下: DECODE(value, if1, then1, if2,then2,if3,then3, . . . else )  Value 代表某个表的不论什么类型的 ...

随机推荐

  1. Hanlp中使用纯JAVA实现CRF分词

    Hanlp中使用纯JAVA实现CRF分词 与基于隐马尔可夫模型的最短路径分词.N-最短路径分词相比,基于条件随机场(CRF)的分词对未登录词有更好的支持.本文(HanLP)使用纯Java实现CRF模型 ...

  2. RedHat6.5安装kafka单机

    版本号: Redhat6.5    JDK1.8     zookeeper-3.4.6   kafka_2.11-0.8.2.1 1.软件环境 已经搭建好的zookeeper:  RedHat6.5 ...

  3. OpenWrt挂载移动硬盘实现脱机下载

    一.编译选项选好好usb存储驱动,参考http://www.cnblogs.com/smbx-ztbz/p/4418245.html 并且选上kmod-usb-hid,用于usbhub. 二.编译选项 ...

  4. MySQL的瑞士军刀

    这里主要讲mysql运维中的一些主要工具,这些工具可能大家都用过,特别是系统管理员或者做linux服务器维护的同学可能都知道这些小工具,这里讲得会比较多一些,除了系统监控的小工具,还包括一些mysql ...

  5. 实现类QQ的编辑框

    第一步,平面效果.Windows系统有几个消息专门用来处理Windows组件的边框部位,那就是WM_NCCALCSIZE和WM_NCPAINT这两个消息,从消息名字看来NC这个就代表着No Clien ...

  6. mycat 1.6 配置【仅学习测试配置使用】

    jdk 自行配置 mycat 1.6 点击下载 配置文件 schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:sch ...

  7. html框内文字垂直居中的方法

    由于无法知道框内文字的高度,很难确定垂直空间的位置.vertical-align:middle仅对td元素有效,无论单行和多行均可实现垂直居中.

  8. 【Json】Jackson将json转换成泛型List

    Jackson将json转换成泛型List 获取泛型类型 /** * 获取泛型类型 * * @return */ protected Class<T> getGenericsType() ...

  9. [UE4]RetainerBox,控制UI更新频率,把渲染后的UI当成Texture

    RetainerBox是一个容器,只会影响其容器内的UI,RetainerBox的作用: 一.控制UI更新频率(可能是为有优化性能) 1.在UserWidget中添加Retainer Box容器,并在 ...

  10. nginx配置location总结及rewrite规则写法 (若配置reload或restart不生效就stop start)

    location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的 ...