码迷,mamicode.com
首页 > 系统相关 > 详细

shell基础,原来脚本并不难!

时间:2018-10-20 13:42:33      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:lock   字母   filename   ash   --   大写   不可   读取   循环语句   

------一个小计算器-----

#!/bin/bash
#this

read -p "请输入第一个整数:" ONE
read -p "请输入第二个整数:" TWO
read -p "请输入运算符:" TH
echo "$ONE$TH$TWO=$(($ONE $TH $TWO))"

---------一个IF单分支语句-----

#!/bin/bash
#this

read -p "输入目录:" DIR
if [ ! -d $DIR ]
then mkdir -p $DIR
fi

echo "Done"

---------一个IF双分支语句---

#!/bin/bash
#this

ping -c1 -i0.1 -W1 $1

if [ $? -eq 0 ]
then echo "$1 is UP!"
else echo "$1 is DOWN!"
fi

=================if 嵌套================
#!/bin/bash
#
read -p "请输入你的成绩:" A
if [ $A -le 10 ]
then
echo "恭喜进入决赛"
read -p "请输入性别(boy/girl):" SEX
if [ $SEX = boy ]
then
echo "进入男子组"
else
echo "进入女子组"
fi
else
echo "很遗憾,你被淘汰"
fi

-------以下是CASE语句----------

#!/bin/bash
#this
export LC_ALL=C //区分大小写

read -p "请输入字符:" KEY

case $KEY in

    [A-Z] )
            echo "您输入的$KEY是大写字母。"
    ;;
    [a-z] )
            echo "您输入的$KEY是小写字母。"
    ;;
    [0-9] )
            echo "您输入的$KEY是数字。"
    ;;
    ,)
            echo "您输入的是$KEY。"
    ;;
    "#")
            echo "您输入的是$KEY。"
    ;;
    *)
            echo "您输入的是其它字符。"
    ;;

esac

-----------------以下是函数------------------
#!/bin/bash
sum(){
read -p "请输入第一个整数:" NUM1
read -p "请输入第二个整数:" NUM2
echo "你输入的两个数为:$NUM1和$NUM2。"
SUM=$(($NUM1+$NUM2))
echo "两个数的和是:$SUM"
#return $(($NUM1+$NUM2)) //使用返回值的方法,最大不可以大于255
}
sum
#echo "两个数的和是:$?"

---------以下是FOR循环----------------

for IP in 192.168.80.{5..183}
do
ping -c1 -i0.2 -W1 $IP &> /dev/null
if [ $? -eq 0 ]
then echo "$IP is UP!"
else echo "$IP is down!"
fi
done

----------以下是例子------------

#!/bin/bash
#

for USER in test{1..10}
do
useradd $USER
echo "${USER}abc" | passwd --stdin $USER &> /dev/null
done

cat /etc/passwd

-----------以下是WHILE例子-----------

#!/bin/bash
#

i=1
PRE=test

while [ $i -le 10 ]
do
useradd $PRE$i
echo "123" | passwd --stdin $PRE$i &> /dev/null
let i++
done
echo $i
cat /etc/passwd

===================until循环语句=====================
##条件不满足循环,一旦满足则停止##
计算1~50的和值
[root@localhost ~]# vi sum1to50_until_v1.sh
#!/bin/bash
##filename:sum1to50_until_v1.sh
i=0;s=0
until [ $i -eq 50 ]
do
let "i=$i+1";let "s=$s+$i"
done
echo ‘sum(1..50)=‘$s

===========================双重循环==================
#!/bin/bash
#
H=1
while [ $H -le 10 ]
do
L=1
while [ $L -le $H ]
do
echo -n "$L"
let L++
done
echo""
let H++

done
最终输出:
1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910

===================shell 数组========================

Shell数组
1、获取数组长度
[root@localhost ~]# arr_number=(1 2 3 4 5);
[root@localhost ~]# arr_length=${#arr_number[*]}
[root@localhost ~]# echo $arr_length
5

2、读取某下标赋值
[root@localhost ~]# arr_index2=${arr_number[2]}
[root@localhost ~]# echo $arr_index2
3

3、数组遍历
[root@localhost ~]# for v in ${arr_number[@]}

do
echo $v
done
1
2
3
4
5

shell基础,原来脚本并不难!

标签:lock   字母   filename   ash   --   大写   不可   读取   循环语句   

原文地址:http://blog.51cto.com/13490688/2306728

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!