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. Go hashcode 输入一个字符串,得到一个唯一标识码

    如何输入一个字符串,得到一个唯一的hashcode? 例子如下: package main import ( "fmt" "hash/crc32" ) // S ...

  2. Git-git rebase详解

    git合并代码方式主要有两种方式,分别为:1.merge处理,这是大家比较能理解的方式.2.rebase处理,中文此处翻译为衍合过程. git rebase操作讲解例子: cd /usr/local/ ...

  3. MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

    MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...

  4. jQuery同一标签多个相同事件 return语句 表单提交实例

    如form表单的submit,a标签都自带一个鼠标单击事件,其实我们还可以额外填加单击事件 如:$(':submit').click();   则自定义的单击事件先执行,然后才是标签自带的单击事件(c ...

  5. 安装phantomjs(Ubuntu版本 MacOS版本)

    安装phantomjs(Ubuntu版本) 首先:apt-get update # 更新软件列表. apt-get upgrade # 更新软件. 其次再执行如下步骤 步骤一下载包:wget http ...

  6. PHP 遍历文件夹下的文件以及子文件夹

    // 递归的方式实现function my_dir( $dir ){ if ( !is_dir($dir) ) { return 'not dir';die(); } $files = array() ...

  7. 数据仓库专题(2)-Kimball维度建模四步骤

    一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设 ...

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

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

  9. 【Spring学习笔记-3】国际化支持

    [Spring]国际化支持 一.总体结构: 两个国际化资源中的内容: 二.程序 2.1  配置Spring上下文 beans.xml文件 <?xml version="1.0" ...

  10. Ansible基础入门

    1.1 Ansible是什么        随着移动互联.物联网.互联网+.大数据.云计算等大规模应用的催生推动,以及人们日常生活的互联网化,互联网的蓬勃发展不仅冲击影响着整个经济体,更对人们的生活理 ...