编写函数,实现打印绿色OK
和红色
FAILED
判断是否有参数,存在为Ok
,不存在为
FAILED
打印函数
function print(){
if [ "$1" -eq 0 ]
then
echo -e "\e[1;31m OK \e[0m"
else
echo -e "\e[1;32m Flase \e[0m"
fi
return 0
}
#从键盘上读取输入
read -p "please input a word:" a
#判断输入是否为空
if [ $a ]
then
#调用函数 传递参数
print 0
else
print 1
fi
实现判断是否无位置参数,如无参数,提示错误
#!/bin/bash
#创建一个位置参数2为空的数组
arr=([0]=1 [1]=2 [3]=3 [4]=4 [5]=5)
read -p "please input a number:" a
#判定所取参数是否为空
if [ ${arr[$a]} ]
then
echo ${arr[$a]}
else
echo "false,this is empty"
fi
编写函数实现两个数字做为参数,返回最大值
#!/bin/bash
function max(){
if [ $1 -lt $2 ]
then
max=$2
echo "$2 is max"
elif [ $1 -gt $2 ]
then
max=$1
echo "$1 is max"
else
echo " $1 equals $2 "
fi
}
read -p "please input two numbers:" a b
max $a $b
编写函数,实现两个整数位参数,计算加减乘除。
#!/bin/bash
function math(){
val=`expr $1 + $2`
echo "$1 + $2 = $val"
val=`expr $1 - $2`
echo "$1 - $2 = $val"
val=`expr $1 \* $2`
echo "$1 * $2 = $val"
val=`expr $1 / $2`
echo "$1 / $2 = $val"
}
read -p "please input two numbers:" a b
math $a $b
将/etc/shadow文件的每一行作为元数赋值给数组
#!/bin/bash
i=0
#使用while循环遍历/etc/shadow文件
while read line
do
arr[$i]=$line
let i++
done < /etc/shadow
echo ${arr[*]}
使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
#!/bin/bash
declare -A array
for line in `cut -d: -f7 /etc/passwd`
do
let array[$line]++
done
for index in ${!array[*]}
do
echo "$index:${array[$index]}"
done
使用关联数组按扩展名统计指定目录中文件的数量
#!/bin/bash
declare -A array
read -p "please input a directory :" dir
for i in `ls $dir`
do
#删除变量${i}中匹配*.的最短字符串(*匹配0个或者多个字符)
let array[${i#*.}]++
done
for index in ${!array[*]}
do
echo "$index:${array[$index]}"
done