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. 【转】Lambda表达式详解

    前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1.0后新增的最重要的功能之一 ...

  2. go thrift报错问题--WriteStructEnd

    问题 go thrift开发过程中,多个goroutine共用一个client时,报错: panic: runtime error: index out of range goroutine 24 [ ...

  3. Linux重定向及nohup不输出的方法

    转载自:http://blog.csdn.net/qinglu000/article/details/18963031   先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信 ...

  4. 魔豆应用开发傻瓜书——helloworld

    一.准备 对于使用Windows的朋友,请注意,你们的编译器⼀定要将Dos换⾏符设置变更为Unix换行符,否则在路由器里就会看到每行的最后有一个^M,对于部分命令的正确执⾏是有问题的. 二.建立项目 ...

  5. 记一次揪心的MySQL数据恢复过程

    https://blog.csdn.net/poxiaonie/article/details/78304699 === 先说下背景,公司其中一个项目所有服务都部署在客户的机房内,机房较小,没有UPS ...

  6. matchmove流程中修改Maya相机数据的脚本

    matchmove组的流程涉及到syntheyes与maya,nuke交接的问题.syntheyes会生成包含去畸变节点的nuke工程 和带跟踪信息的maya工程.在nuke工程上渲染得到去畸变的序列 ...

  7. TreeView添加图片

    实现方式一: 通过代码方式实现如下所示: private string FilePath = Application.StartupPath + "\\Images\\"; Ima ...

  8. Python入门 [输出,注释,列表,元祖,集合,字典,if,while,for]

    print("Hello Python") #输出 ''' 多行注释 用 三个引号 ''' a=1 #赋值 变量首字母只能书字母下划线 第二个字符数字,字母,下划线 声明一个列表 ...

  9. JFrame关闭程序就退出的设置

    要是实现JFrame 关闭后程就退出或者停止可以调用setDefaultCloseOperation() 方法. 入下图程序 package ltb6w; import javax.swing.*; ...

  10. 【linux】之查看物理CPU个数、核数、逻辑CPU个数

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...