#键盘键入两个整数,并计算它们之和
#!/bin/bash##echo -n "Input two Intergers:"read -t 5 -p "Input two Intergers[100 and 200]:" A B[ -z $A ] && A=100[ -z $B ] && B=200echo "$A plus $B is:$[$A+$B]"#归档文件的脚本#!/bin/bash#read -p "Three files:" FILE1 FILE2 FILE3read -p "Destination:" DESTread -p "Compress[gzip|bzip2|xz]:" COMPcase $COMP ingzip) 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 untilwhile循环:试用于循环次数未知的场景语法: while CONDITION; do statement ... done#计算100以内和#!/bin/bash#declare -i I=1declare -i SUM=0while [ $I -le 100 ]; do let SUM+=$I let I++doneecho $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/nullRETVAL=$?while [ RETVAL -ne 0 ];do echo "date ,hadoop is not logged" sleep 5 who | grep "hadoop" &>/dev/null RETVAL=$?doneecho "hadoop is logged in."----------------------------
<<EOF(内容)EOF把EOF替换成其东西意思把内容当作标准输入传给程序----------------------------显示一个菜单给用户第一版#!/bin/bash、#cat << EOFd|D) show disk usages.m|M) show memory usages.s|S) show swap usages.EOFread -p "your choice:" CHOICEcase $CHOICE ind|D) echo "DISK usages:" df -Ph ;;m|M) echo "MEMORY usages:" free -m | grep "Men" ;;s|S) echo "SWAP usages:" free -m | grep "swap" ;;*) echo "Unknown" exit 9esacesac第二版#!/bin/bash#cat << EOFd|D) show disk usages.m|M) show memory usages.s|S) show swap usages.EOFread -p "your choice:" CHOICEwhile [ $CHOICE == 'quit'];do case $CHOICE in d|D) echo "DISK usages:" df -Ph ;; m|M) echo "MEMORY usages:" free -m | grep "Men" ;; s|S) echo "SWAP usages:" free -m | grep "swap" ;; *) echo "Unknown.." ;; esac read -p "Again,your choice: " CHOICEdone知识点man echo echo -e "\033[1mHello\003[0m,world"echo -e "\033[2mHello\003[0m,world"echo -e "\033[31mHello\003[0m,world"echo -e "\033[41mHello\003[0m,world"echo -e "\033[32;41mHello\003[0m,world"echo -e "\033[1;37mHello\003[0m,world"扩展题目:给用户颜色的显示echo -n -e "\033[31myour choice:\033[0m" read CHOICEwhile [ $CHOICE == 'quit'];do case $CHOICE in d|D) echo "DISK usages:" df -Ph ;; m|M) echo "MEMORY usages:" free -m | grep "Men" ;; s|S) echo "SWAP usages:" free -m | grep "swap" ;; *) echo "Unknown.." ;; esac read -p "Again,your choice: " CHOICEdone