书籍:鸟哥的私房菜Linux基础学习
13. 学习shell script
#!/bin/bash
echo -e 'Hello World! \a \n'
#时间的操作
date1=$(date --date='2 days ago' +%Y%m%d)
date2=$(date --date='1 days ago' +%Y%m%d)
date3=$(date +%Y%m%d)
#文件名的检测
read -p 'Please input filename: ' filename #使用filename接受用户输入的参数
test -z ${filename} && echo 'not input filename' && exit 0 #如果输入的是空字符串就返沪True并打印提示信息退出
#文件名日期的拼接
filename=${filename:-'notinput'}
#判断用户是否输入文件名,如果输入了就用输入的,如果没有输入就用默认的notinput
echo ${filename}'_'${date2}'.log'
echo ${filename}'_'${date2}'.log'
echo ${filename}'_'${date3}'.log'
#运算式的编写
read -p 'input first num: ' firstnum
read -p 'input second num: ' secondnum
total=$((${firstnum}+${secondnum}))
echo ${total}
#使用中括号进行条件判断的时候注意格式的书写
read -p 'delete file ? (Y/N): ' yn
[ "${yn}" == "Y" -o "${yn}" == "y" ] && echo 'yes' && exit 0
[ "${yn}" == "N" -o "${yn}" == "n" ] && echo 'no' && exit 0
#参数的获取
echo "total param: --> $#"
echo "script name: --> $0"
echo "whole param: --> $@"
[ "$#" -lt 2 ] && echo "need more than 2 param, stoped..." && exit 0
echo "first param: --> $1"
echo "second param: --> $2"
echo "third param: --> $3"
#参数移除,向左移除
shift
echo "total param: --> $#"
echo "whole param: --> $@"
#if else 语句
read -p "mv file ? (Y/N): " yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "begin mv file..."
exit 0
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "do not mv file"
exit 0
else
echo "input error"
exit 0
fi
#case 语句
#read -p "please input your choice: " choice
#case $choice in
case $1 in
"one")
echo "Your Choice is One"
;;
"tow")
echo "Your Choice is Two"
;;
"three")
echo "Your Choice is Three"
;;
*)
echo "Usage $0 {one|two|three}"
;;
esac
#使用function
function my_add(){
echo "result: "$1"+"$2"="$(($1 + $2))
return $(($1 + $2))
}
total=`my_add 1 2` #total 的值为函数中输出的信息--> result: 1+2=3
echo "$?" #"$?"的值为return的值--> 3
echo $total
#while 循环
while [ "$yn" != "YES" ] && [ "$yn" != "yes" ]
do
echo "wait"
read -p "Please input yes|YES to stop this program: " yn
done
echo "OK! You input the correct answer"
#for 循环
users=$(cat /etc/passwd | cut -d ':' -f 1)
for user in $users
do
id $user
done
read -p "Please input a number, I will calcu 1+2+3+...+your inout: " nu
s=0
for ((i=1; i <$nu; i=i+1))
do
s=$(($s+$i))
done
echo "1+2+3+...+$nu=$s"
http://www.cnblogs.com/makexu/

浙公网安备 33010602011771号