Shell 脚本基本操作练习

这里主要是熟悉了shell的基本操作,包括变量赋值引用修改、函数的使用、信号的获取及一些判断方法等,具体详见代码:

#!/bin/sh

str="Hello World !"
echo "${str}aha"

#''
echo '$str'

#file name
echo "the name of this shell script is $0"

#first parameter , $1---$N
echo "the first parameter is $1"

#all of the parameter
echo "all of the parameter is $*"

#num of the parameter
echo "the num of the parameter is $#"

#PID of this process
echo "this running pid is $$"

#the return value of the front one 
echo "return value of the front one is $?"

#the reference of the return val
echo "the current directory is "`pwd`

#-eq ==
str=5
str2=5
if [ "${str}" -eq "${str2}" ] ;then echo "$str equal $str2"
else echo "no equal"
fi

#-ge >=
str=5
str2=10
if [ "$str2" -ge "$str" ];then echo "$str2 >= $str"
else echo "no ge"
fi

#-gt > ; -le <= ; -ne != ; = ==; != != ; 

#str no null
if [ "$str" ] ; then echo "$str is not null"
else echo "null"
fi

#-n str len of str > 0
if [ -n "$str" ] ; then echo "$str len > 0"
else echo "len < 0"
fi

#-z str len of str == 0

#dir
filename="./test_dir"
if [ -d $filename ]; then echo "$filename is dir"
else echo "$filename is not dir"
fi

#file
filename="./test_dir"
if [ -f $filename ]; then echo "$filename is file"
else echo "$filename is not file"
fi

#-r file : is read
#-s file : len of file > 0
#-w file : is write
#-x file : is run
#

#case switch
str=5

case $str in
1) echo "$str is 1"
;;
2) echo "$str is 2"
;;
5) echo "$str is 5"
;;
*)echo "unknow val"
esac


#fun
add(){
        local temp;
        temp=`expr $1 + $2`
        sum=`expr $temp + $3`
        return $sum
}

#more information about expr , access http://www.cnblogs.com/kelin1314/archive/2011/01/11/1933019.html

echo "we will use function add 3+8+10"
add 3 8 10
echo "the sum val is $?"

#trap : catch the signal(SIGHUP SIGINT SIGQUIT SIGKILL SIGTERM)

trap catch_signal INT
catch_signal(){
        echo "I catch the SIGINT !!!"
        sleep 1
}

for i in 6 5 4 3 2 1;do
echo "$i seconds until system failure , you can use CTRL+C ~"
sleep 1
done
echo "system failure"

运行结果如下:

tiger@ubuntu:/mnt/hgfs/e/Lessons/MyExercise/UtilLibs/SHELL$ ./test_shell.sh   
Hello World !aha
$str
the name of this shell script is ./test_shell.sh
the first parameter is 
all of the parameter is 
the num of the parameter is 0
this running pid is 7736
return value of the front one is 0
the current directory is /mnt/hgfs/e/Lessons/MyExercise/UtilLibs/SHELL
5 equal 5
10 >= 5
5 is not null
5 len > 0
./test_dir is dir
./test_dir is not file
5 is 5
we will use function add 3+8+10
the sum val is 21
6 seconds until system failure , you can use CTRL+C ~
5 seconds until system failure , you can use CTRL+C ~
^CI catch the SIGINT !!!
4 seconds until system failure , you can use CTRL+C ~
^CI catch the SIGINT !!!
3 seconds until system failure , you can use CTRL+C ~
^CI catch the SIGINT !!!
2 seconds until system failure , you can use CTRL+C ~
1 seconds until system failure , you can use CTRL+C ~
system failure
tiger@ubuntu:/mnt/hgfs/e/Lessons/MyExercise/UtilLibs/SHELL$ 

只是出于熟悉shell的目的,没有深究,欢迎拍砖!

posted on 2013-07-19 16:30  净坛使者  阅读(832)  评论(0编辑  收藏  举报

导航