shell脚本

#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#This script is used for adding a new user!
if [ "$#" -ne 1 ] ;then
        echo "请输入一个用户名";exit
elif id $1 &> /dev/null;then
        echo "该用户已存在"
else
        useradd $1;echo "创建用户成功,用户信息如下:"
        id $1
fi

#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#编写脚本/root/bin/yesorno.sh,提示用户输入yes或no,并判断用户输入的是yes还是no,或是其它信息

read -p  "请输入yes or no:" ans
if [[ "$ans" =~ ^[yY]$|^[yY][Ee]$|^[yY][Ee][Ss]$  ]]
        then
        echo "输入结果为yes"
elif [[ "$ans" =~ ^[nN]$|^[nN][Oo]$  ]]
        then
        echo "输入结果为no"
else
        echo "只能输入yes or no"
fi

#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#编写脚本/root/bin/filetype.sh,判断用户输入文件路径,显示其文件类型(普通,目录,链接,块设备,其它文件类型)

if  [[ ! -a $1 ]];
        then echo "文件不存在"
elif [ -h $1  ];
        then  echo "符号链接文件"
elif [ -b $1  ];
        then  echo "块设备文件"
elif [ -d $1  ];
        then  echo "目录文件"
elif [ -f $1  ];
        then  echo "普通文件"
else
        echo "其他文件"
fi

#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#判断用户输入的参数是否为正整数

if [[ $# -ne 1  ]]
        then
        echo "请输入一个参数"
elif [[ $1 =~ ^[0]$ ]]
        then
        echo "不是正整数"
elif [[ $1 =~ ^[[:digit:]]+$  ]]
        then
        echo "是正整数"
else
        echo "不是正整数"
fi

#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#This script is used for 输入一个目录名,判断该目录下所有文件的类型
if [ $# -ne  1 ]
        then
        echo "参数错误,请输入一个目录"
elif  [[ ! -a $1 ]]
        then
        echo "目录不存在"
elif [[ ! -d $1 ]]
        then
        echo "输入的参数不是目录"
else
        for filename in `ls $1`;do
        file $1/$filename
        unset filename
        done
fi


#Author:Luo
#date:2017-07-01
#version:2.0
#添加10个用户user1-user10,密码为8位随机字符
for num in `seq 10`;do
        useradd user$num; cat /dev/urandom |tr -dc a-zA-Z0-9|head -c 8|passwd user$num --stdin
done
  
#Author:Luo
#date:2017-07-01
#version:2.0
#/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件;分别读取每个文件,以K开头的输出为>文件加stop,以S开头的输出为文件名加start,如K34filename stop S66filename start

for filename in `ls /etc/rc.d/rc3.d`;do
        if [[ "$filename" =~ ^K.*$  ]]
                then echo "$filename stop"
        elif [[ "$filename" =~ ^S.*$  ]]
                then echo "$filename start"
        else echo "$filename"
        fi
done
unset filename


#Author:Luo
#date:2017-07-01
#version:2.0
#提示输入正整数n的值,计算1+2+…+n的总和

sum=0
if [[ $# -ne 1  ]]
        then
        echo "参数输入错误,请输入一个正整数"
elif [[ $1 =~ ^[0]$ ]]
        then
        echo "参数输入错误,不是正整数"
elif [[ $1 =~ ^[[:digit:]]+$  ]]
        then
        for num in `seq $1`;do
        let sum+=$num
        done
        echo "sum=$sum"
else
        echo "参数输入错误,不是正整数"
fi
#Author:Luo
#date:2017-07-01
#version:2.0
#计算100以内所有能被3整除的整数之和
sum=0
for num in `seq 100`;do
        module=$[num%3]
        if [[ $module -eq 0 ]];then
                let sum+=num
        fi
done
echo "sum=$sum"
unset sum
unset module
unset num


#Author:Luo
#date:2017-07-01
#version:2.0
#打印九九乘法表

for num1 in `seq 9`;do
        for num2 in `seq $num1`;do
                let product=$num2*$num1
                echo -n "$num2*$num1=$product "
        done
        echo 
done

#Author:Luo
#date:2017-07-01
#version:2.0
#打印等腰三角形

for lnum  in `seq $1`;do
        let space=$1-lnum
        let star=2*lnum-1
                for spacetimes in `seq "$space"`;do
                echo -n " "
                done
                for startimes in `seq "$star"`;do
                echo -n "*"
                done
        echo 
done

#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#猜字游戏
#date:2017-07-02
#version:2.0

let num=$RANDOM%10
guess=11
until [ "$guess" -eq "$num" ];do
        read -p "猜一猜我的数字是多少?(输入1-10或者exit退出):" guess
        [ $guess = exit  ]&&exit
        [[ ! $guess =~ ^[[:digit:]]+$ ]]&&echo "输入错误,请重新开始游戏"&&exit
        if [ "$guess" -lt "$num" ];then
                echo "猜小啦!"
        elif [ "$guess" -gt "$num" ];then
                echo "猜大啦!"
        else
                echo "猜对啦!"
        fi


done
unset guess
unset num

#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-02
#version:2.0
#用文件名做为参数,统计所有参数文件的总行数
sum=0
until [ -z "$1" ];do
        line=`cat $1 |wc -l`
        let sum+=$line
        shift
done
echo sum=$sum
unset sum
unset line

#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-02
#version:2.0
#用二个以上的数字为参数,显示其中的最大值和最小值

[ $# -lt 2 ]&&echo "usage:请输入两个以上数字参数"&&exit

#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-02
#version:2.0
#用二个以上的数字为参数,显示其中的最大值和最小值

[ $# -lt 2 ]&&echo "usage:请输入两个以上数字参数"&&exit

if [[ ! $1  =~ ^-?[[:digit:]]+$ ]];then
        echo "参数类型错误,只能输入数字";exit
elif [[ ! "$2" =~ ^-?[[:digit:]]+$ ]];then
        echo "参数类型错误,只能输入数字";exit

elif [ $1 -gt $2 ];then
        max=$1
        min=$2
else
        max=$2
        min=$1
fi

until [ -z "$1" ];do
        [[ ! "$1" =~ ^-?[[:digit:]]+$ ]]&&echo "参数类型错误,只能输入数字"&&exit
        if [ $1 -gt $max  ];then
                max=$1
        fi
        if [ $1 -le $min  ];then
                min=$1
        fi
        shift
done

echo max=$max
echo min=$min
unset max
unset min
#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-02
#version:2.0
#扫描/etc/passwd文件每一行,如发现GECOS字段为空,则填充用户名和单位电话为62985600,并提示>该用户的GECOS信息修改成功。

while read line;do
        user=`echo $line|cut -d: -f1`
        comment=`echo $line|cut -d: -f5`

        [ -z "$comment" ] && usermod -c ""$user"6285600" $user &&echo "用户$user 注释信息>添加成功"
done</etc/passd
unset user
unset conmment
#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-06
#version:2.0
#编写函数实现数字的加减乘除运算,例如输入1 + 2,,将得出正确结果
jisuan () {
[ $# -lt 3 ]&&echo "请输入正确的参数,like 1 + 2 / 3 + 3 "&&return
result=$1
until [ -z $2 ] ;do

let result=$result$2$3
shift
shift


done
echo $result
}
#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-06
#斐波那契数列又称黄金分割数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,
#故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,
#斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2)
#利用函数,求n阶斐波那契数列
#version:2.0


F (){
if [ $1 -eq 0 ];then
        f=0
        echo $1
elif [ $1 -eq 1 ];then
        f=1
        echo $f
else
        m=`F $[$1-1]`
        n=`F $[$1-2]`
        let f=m+n
        echo $f
fi
}

Flist () {
for ((i=0;i < $1;i++));do
echo -n  "`F $i` "
done
echo
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容