Linux之部分shell脚本练习
#键盘键入两个整数,并计算它们之和#!/bin/bash
#
#echo -n "Input two Intergers:"
read -t 5 -p "Input two Intergers:" A B
[ -z $A ] && A=100
[ -z $B ] && B=200
echo "$A plus $B is:$[$A+$B]"
#归档文件的脚本
#!/bin/bash
#
read -p "Three files:" FILE1 FILE2 FILE3
read -p "Destination:" DEST
read -p "Compress:" COMP
case $COMP in
gzip)
tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
;;
bzip2)
tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
;;
xz)
tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
xz ${DEST}.tar
;;
*)
echo "Unknown."
exit 9
;;
esac
脚本编程:
顺序结构
选择结构
if
case
循环结构
for
while
until
while循环:试用于循环次数未知的场景
语法:
while CONDITION; do
statement
...
done
#计算100以内和
#!/bin/bash
#
declare -i I=1
declare -i SUM=0
while [ $I -le 100 ]; do
let SUM+=$I
let I++
done
echo $SUM
#输入字符串,提示要修改成大写的,如果是quit,则退出。
#!/bin/bash
#
read -p "Input something:" STRING
while [ $STRING != 'quit' ];do
echo $STRING | tr 'a-z' 'A-Z'
read -p "Input something:" STRING
done
#查看用户hadoop是否登录
#!/bin/bash
#
who | grep "hadoop" &>/dev/null
RETVAL=$?
while [ RETVAL -ne 0 ];do
echo "date ,hadoop is not logged"
sleep 5
who | grep "hadoop" &>/dev/null
RETVAL=$?
done
echo "hadoopis logged in."
----------------------------
页:
[1]