脚本应用之九: 通用函数 【 functions_func1 】

测试系统版本:CentOS 6.4

作用: 提供五个通用函数:chipf  chmaskif  randomn  waituser  fcmds

使用: 脚本中调用 “./source functions_func1”


演示及介绍:


1、chipf 判断参数是否为一个正确格式的IP地址

脚本应用之九: 通用函数 【 functions_func1 】_第1张图片


2、chmaskf 判断参数是否为一个正确格式的子网掩码

脚本应用之九: 通用函数 【 functions_func1 】_第2张图片


3、randomn   随机生指定个数的字符串,字符库以参数的形式指定

脚本应用之九: 通用函数 【 functions_func1 】_第3张图片


4、waituser  模拟常见的“按任意键继续。。。” 功能

脚本应用之九: 通用函数 【 functions_func1 】_第4张图片

脚本应用之九: 通用函数 【 functions_func1 】_第5张图片


5、fcmds 在环境变量PATH包含的路径中查找符合要求的指令, 指定的数字限制查找名的长度最大值

脚本应用之九: 通用函数 【 functions_func1 】_第6张图片



代码专区:

#/bin/bash

#  LY
#  ------------------
#  Copyright 2016.04.15  LingYi ([email protected]) QQ:1519952564

#eg: chipf IP
chipf()
{
	[[ -n $(echo $1 | tr -d '[0-9.]') ]] && return 1
	[[ $( echo $1 | grep -o '\.' | wc -l) -ne 3 ]] && return 2
	local i j n 
	for ((i=1; i<5; i++)); do 
		j=$(echo $1 | awk -F. '{print $num }' num=$i)
		[[ ${#j} -ne 1 ]] && [[ ${j:0:1} -eq 0 ]] && return 3
		[[ -z $j ]] || [[ $j -gt 254 ]] && return 4
		[[ $i -eq 1 ]] && [[ ${j:0:1} -eq 0 ]] && return 5
	done
	return 0
}

#chmaskf MASK
chmaskf()
{
	[[ -n $(echo $1 | tr -d '[0-9.]') ]] && return 1
	[[ $( echo $1 | grep -o '\.' | wc -l) -ne 3 ]] && return 2
	local i j n 
	for ((i=1; i<5; i++)); do 
		j=$(echo $1 | awk -F. '{print $n }' n=$i)
		[[ ${#j} -ne 1 ]] && [[ ${j:0:1} -eq 0 ]] && return 3
		[[ -z $j ]] && return 4
		echo '0 128 192 224 240 248 252 254 255' | grep -qw $j || return 5
		if [[ $j -ne 255 ]] && [[ $i -ne 4 ]]; then
			[[ $(echo $1 | awk -F. '{print $n}' n=$((i+1))) -ne 0 ]] && return 6
		fi
	done
	return 0
}

#eg: randomn 10
#eg: randomn 10 'a b c  1 2 3 + - , . < >'
randomn()
{
	local i Array
	[[ $# -eq 2 ]] && Array=( $2 ) || {
		Array=( 1 2 3 4 5 6 7 8 9 0 \
			a b c d e f g h i g k l m n o k p r s t u v w x y z \
			A B C D E F G H I G K L M N O P K R S T U V W X Y X \
			@ \! \~ \$ \+ \- \= \.\ )
	}
	for (( i=1; i<=$1; i++ )); do 
		echo -n ${Array[$(( RANDOM % ${#Array[@]} ))]}
	done
}

#wait user to press any key to continue.
waituser()
{
	tput civis && tput sc
	echo -ne "\033[5;34mPress any key to continue,or Ctrl+C to exit !\033[0m"
	read -s -n 1 press
	tput cnorm && tput rc && tput el
}

fcmds()
{
	local dir comd
	for dir in `echo $PATH | tr ':' ' '`; do 
 		[[ ! -d ${dir} ]] && continue
     		for comd in $( ls ${dir} |grep -i "$1" ); do
        		[[ -n ${2} ]] && { [[ ${#comd} -le ${2} ]] && echo $comd; continue; }
        		echo ${comd}
      		done
  	done
}


源代码下载



你可能感兴趣的:(字符串,source,IP地址)