#!/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 "請(qǐng)輸入一個(gè)用戶名";exit
elif id $1 &> /dev/null;then
echo "該用戶已存在"
else
useradd $1;echo "創(chuàng)建用戶成功箱蝠,用戶信息如下:"
id $1
fi
#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#編寫(xiě)腳本/root/bin/yesorno.sh,提示用戶輸入yes或no,并判斷用戶輸入的是yes還是no,或是其它信息
read -p "請(qǐng)輸入yes or no:" ans
if [[ "$ans" =~ ^[yY]$|^[yY][Ee]$|^[yY][Ee][Ss]$ ]]
then
echo "輸入結(jié)果為yes"
elif [[ "$ans" =~ ^[nN]$|^[nN][Oo]$ ]]
then
echo "輸入結(jié)果為no"
else
echo "只能輸入yes or no"
fi
#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#編寫(xiě)腳本/root/bin/filetype.sh,判斷用戶輸入文件路徑宦搬,顯示其文件類(lèi)型(普通牙瓢,目錄,鏈接间校,塊設(shè)備矾克,其它文件類(lèi)型)
if [[ ! -a $1 ]];
then echo "文件不存在"
elif [ -h $1 ];
then echo "符號(hào)鏈接文件"
elif [ -b $1 ];
then echo "塊設(shè)備文件"
elif [ -d $1 ];
then echo "目錄文件"
elif [ -f $1 ];
then echo "普通文件"
else
echo "其他文件"
fi
#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#判斷用戶輸入的參數(shù)是否為正整數(shù)
if [[ $# -ne 1 ]]
then
echo "請(qǐng)輸入一個(gè)參數(shù)"
elif [[ $1 =~ ^[0]$ ]]
then
echo "不是正整數(shù)"
elif [[ $1 =~ ^[[:digit:]]+$ ]]
then
echo "是正整數(shù)"
else
echo "不是正整數(shù)"
fi
#!/bin/bash
#Author:Luo
#date:2017-07-01
#version:2.0
#This script is used for 輸入一個(gè)目錄名,判斷該目錄下所有文件的類(lèi)型
if [ $# -ne 1 ]
then
echo "參數(shù)錯(cuò)誤憔足,請(qǐng)輸入一個(gè)目錄"
elif [[ ! -a $1 ]]
then
echo "目錄不存在"
elif [[ ! -d $1 ]]
then
echo "輸入的參數(shù)不是目錄"
else
for filename in `ls $1`;do
file $1/$filename
unset filename
done
fi
#Author:Luo
#date:2017-07-01
#version:2.0
#添加10個(gè)用戶user1-user10胁附,密碼為8位隨機(jī)字符
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目錄下分別有多個(gè)以K開(kāi)頭和以S開(kāi)頭的文件;分別讀取每個(gè)文件滓彰,以K開(kāi)頭的輸出為>文件加stop控妻,以S開(kāi)頭的輸出為文件名加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
#提示輸入正整數(shù)n的值揭绑,計(jì)算1+2+…+n的總和
sum=0
if [[ $# -ne 1 ]]
then
echo "參數(shù)輸入錯(cuò)誤,請(qǐng)輸入一個(gè)正整數(shù)"
elif [[ $1 =~ ^[0]$ ]]
then
echo "參數(shù)輸入錯(cuò)誤饼暑,不是正整數(shù)"
elif [[ $1 =~ ^[[:digit:]]+$ ]]
then
for num in `seq $1`;do
let sum+=$num
done
echo "sum=$sum"
else
echo "參數(shù)輸入錯(cuò)誤,不是正整數(shù)"
fi
#Author:Luo
#date:2017-07-01
#version:2.0
#計(jì)算100以內(nèi)所有能被3整除的整數(shù)之和
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 "猜一猜我的數(shù)字是多少洗做?(輸入1-10或者exit退出):" guess
[ $guess = exit ]&&exit
[[ ! $guess =~ ^[[:digit:]]+$ ]]&&echo "輸入錯(cuò)誤,請(qǐng)重新開(kāi)始游戲"&&exit
if [ "$guess" -lt "$num" ];then
echo "猜小啦!"
elif [ "$guess" -gt "$num" ];then
echo "猜大啦!"
else
echo "猜對(duì)啦弓叛!"
fi
done
unset guess
unset num
#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-02
#version:2.0
#用文件名做為參數(shù),統(tǒng)計(jì)所有參數(shù)文件的總行數(shù)
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
#用二個(gè)以上的數(shù)字為參數(shù)诚纸,顯示其中的最大值和最小值
[ $# -lt 2 ]&&echo "usage:請(qǐng)輸入兩個(gè)以上數(shù)字參數(shù)"&&exit
#!/bin/bash
#Author:Luo
#email:luo-maojian@foxmail.com
#date:2017-07-02
#version:2.0
#用二個(gè)以上的數(shù)字為參數(shù)撰筷,顯示其中的最大值和最小值
[ $# -lt 2 ]&&echo "usage:請(qǐng)輸入兩個(gè)以上數(shù)字參數(shù)"&&exit
if [[ ! $1 =~ ^-?[[:digit:]]+$ ]];then
echo "參數(shù)類(lèi)型錯(cuò)誤,只能輸入數(shù)字";exit
elif [[ ! "$2" =~ ^-?[[:digit:]]+$ ]];then
echo "參數(shù)類(lèi)型錯(cuò)誤畦徘,只能輸入數(shù)字";exit
elif [ $1 -gt $2 ];then
max=$1
min=$2
else
max=$2
min=$1
fi
until [ -z "$1" ];do
[[ ! "$1" =~ ^-?[[:digit:]]+$ ]]&&echo "參數(shù)類(lèi)型錯(cuò)誤毕籽,只能輸入數(shù)字"&&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文件每一行,如發(fā)現(xiàn)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
#編寫(xiě)函數(shù)實(shí)現(xiàn)數(shù)字的加減乘除運(yùn)算杯缺,例如輸入1 + 2蒸播,,將得出正確結(jié)果
jisuan () {
[ $# -lt 3 ]&&echo "請(qǐng)輸入正確的參數(shù),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
#斐波那契數(shù)列又稱(chēng)黃金分割數(shù)列萍肆,因數(shù)學(xué)家列昂納多·斐波那契以兔子繁殖為例子而引入袍榆,
#故又稱(chēng)為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:0塘揣、1包雀、1、2亲铡、3才写、5葡兑、8、13赞草、21讹堤、34、……房资,
#斐波納契數(shù)列以如下被以遞歸的方法定義:F(0)=0,F(xiàn)(1)=1檀头,F(xiàn)(n)=F(n-1)+F(n-2)(n≥2)
#利用函數(shù)轰异,求n階斐波那契數(shù)列
#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
}