一些简单shell实例
1.模拟linnux登录shell[*] #!/bin/bash
[*] echo -n "login:"
[*] read name
[*] echo -n "password:"
[*] read passwd
[*] if [ $name = "cht" -a $passwd = "abc" ];then
[*] echo "the host and password is right!"
[*] else echo "input is error!"
[*] fi
2.比较两个数大小
[*] #!/bin/bash
[*] echo "please enter two number"
[*] read a
[*] read b
[*] if test $a -eq $b
[*] then echo "NO.1 = NO.2"
[*] elif test $a -gt $b
[*] then echo "NO.1 > NO.2"
[*] else echo "NO.1 < NO.2"
[*] fi
3.查找/root/目录下是否存在该文件
[*] #!/bin/bash
[*] echo "enter a file name:"
[*] read a
[*] if test -e /root/$a
[*] then echo "the file is exist!"
[*] else echo "the file is not exist!"
[*] fi
4.for循环的使用
[*] #!/bin/bash
[*] clear
[*] for num in 1 2 3 4 5 6 7 8 9 10
[*] do
[*] echo "$num"
[*] done
5.查看是否当前用户
[*] #!/bin/bash
[*] echo "Please enter a user:"
[*] read a
[*] b=$(whoami)
[*] if test $a = $b
[*] then echo "the user is running."
[*] else echo "the user is not running."
[*] fi
6.删除当前目录下大小为0的文件
[*] #!/bin/bash
[*] for filename in `ls`
[*] do
[*] if test -d $filename
[*] then b=0
[*] else
[*] a=$(ls -l $filename | awk '{ print $5 }')
[*] if test $a -eq 0
[*] then rm $filename
[*] fi
[*] fi
[*] done
7.如果/export/um_lpp_source下有文件,那么将其文件系统大小改为3G
[*] #!/bin/bash
[*] while line=`ls /export/um_lpp_source`
[*] do
[*] if test $line=""
[*] then echo "NULL"
[*] sleep 1
[*] else echo $line
[*]
chfs -a>
[*] exit 0
[*] fi
[*] done
8.测试IP地址
[*] #!/bin/bash
[*] for i in 1 2 3 4 5 6 7 8 9
[*] do
[*] echo "the number of $i computer is "
[*] ping -c 1 192.168.0.$i
[*] done
9.如果test.log的大小大于0,那么将/opt目录下的*.tar.gz文件拷贝到当前目录下
[*] #!/bin/sh
[*] a=2
[*] while name="test.log"
[*] do
[*] sleep 1
[*] b=$(ls -l $name | awk '{print $5}')
[*] if test $b -gt $a
[*] then `cp /opt/*.tar.gz .`
[*] exit 0
[*] fi
[*] done
10.打印读取的内容,为下面的例子做准备
[*] #!/bin/bash
[*] while read name
[*] do
[*] echo $name
[*] done
11.从0.sh中读取内容并打印
[*] #!/bin/bash
[*] while read line
[*] do
[*] echo $line
[*] done < 0.sh
12.读取a.c中的内容并做加1运算
[*] #!/bin/bash
[*] test -e a.c
[*] while read line
[*] do
[*] a=$(($line+1))
[*] done < a.c
[*] echo $a
13.普通无参数函数
[*] #!/bin/bash
[*] p ()
[*] {
[*] echo "hello"
[*] }
[*] p
14.给函数传递参数
[*] #!/bin/bash
[*] p_num ()
[*] {
[*] num=$1
[*] echo $num
[*] }
[*] for n in $@
[*] do
[*] p_num $n
[*] done
15.创建文件夹
[*] #!/bin/bash
[*] while :
[*] do
[*] echo "please input file's name:"
[*] read a
[*] if test -e /root/$a
[*] then
[*] echo "the file is existing Please input new file name:"
[*] else
[*] mkdir $a
[*] echo "you aye sussesful!"
[*] break
[*] fi
[*] done
16.获取本机IP地址
[*] #!/bin/bash
[*] ifconfig | grep "inet addr:" | awk '{ print $2 }'| sed 's/addr://g'
17.查找最大文件
[*] #!/bin/bash
[*] a=0
[*] for name in *.*
[*] do
[*] b=$(ls -l $name | awk '{print $5}')
[*] if test $b -gt $a
[*] then a=$b
[*] namemax=$name
[*] fi
[*] done
[*] echo "the max file is $namemax"
18.查找当前网段内IP用户,重定向到ip.txt文件中
[*] #!/bin/bash
[*] a=1
[*] while :
[*] do
[*] a=$(($a+1))
[*] if test $a -gt 255
[*] then break
[*] else
[*] echo $(ping -c 1 192.168.0.$a | grep "ttl" | awk '{print $4}'| sed 's/://g')
[*] ip=$(ping -c 1 192.168.0.$a | grep "ttl" | awk '{print $4}'| sed 's/://g')
[*] echo $ip >> ip.txt
[*] fi
[*] done
19.打印当前用户
[*] #!/bin/bash
[*] echo "Current User is :"
[*] echo $(ps | grep "$$" | awk '{print $2}')
20.case语句练习
[*] #!/bin/bash
[*] clear
[*] echo "enter a number from 1 to 5:"
[*] read num
[*] case $num in
[*] 1) echo "you enter 1"
[*] ;;
[*] 2) echo "you enter 2"
[*] ;;
[*] 3) echo "you enter 3"
[*] ;;
[*] 4) echo "you enter 4"
[*] ;;
[*] 5) echo "you enter 5"
[*] ;;
[*] *) echo "error"
[*] ;;
[*] esac
21.yes/no返回不同的结构
[*] #!/bin/bash
[*] clear
[*] echo "enter :"
[*] read a
[*] case $a in
[*] y|Y|Yes|YES) echo "you enter $a"
[*] ;;
[*] n|N|NO|no) echo "you enter $a"
[*] ;;
[*] *) echo "error"
[*] ;;
[*] esac
22.内置命令的使用
[*] #!/bin/bash
clear
echo "Hello, $USER"
echo "Today 's date> echo "the user is :"
who
echo "this is `uname -s`"
echo "that's all folks! "
[*]
23.打印无密码用户
[*] #/bin/bash
[*] echo "No Password User are :"
[*] echo $(cat /etc/shadow | grep "!!" | awk 'BEGIN { FS=":" }{print $1}')
参考:http://blog.chinaunix.net/uid-28804901-id-3874633.html
页:
[1]