if-fi
Result:
(没有readme文件)
    [work shell]$ sh if_e.sh 
    
    
      add readme ...
      
    
    [workshell]$ sh if_e.sh 
    
    
      del readme ...
      
      add readme ...
    
  
===================================================
if-else-fi
Result:
    [work shell]$ sh if.sh 
    
    
      press y hello
      
      y
      
      hello
      
    
    [work shell]$ sh if.sh 
    
    
      press y hello
      
      n
      
      bye..
    
  
===================================================
if-elif-else-if(函数传参1)
    # !/bin/sh
type=1    # 1, 2, 3(a,abc,123)
function getVal(){
    echo "$1"
}
if [ "$type" == "1" ]; then
    for((i=0;i<4;i++))
    do
        eval getVal $i
    done
elif [ "$type" == "2" ]; then
    echo "type"
else
    echo "none"
fi
  
  
    
      Result:
    
  
  yanggang@barry$ ./param.sh
0
1
2
3
===================================================
if-elif-else-if(函数传参2)
    # !/bin/sh
#type=1    # 1, 2, 3(a,abc,123)
function getVal(){
    echo "$1"
}
function inputVal(){
    if [ "$1" == "1" ]; then
        for((i=0;i<4;i++))
        do
            eval getVal $i
        done
    elif [ "$1" == "2" ]; then
        echo "type"
    else
        echo "none"
    fi
}
inputVal 1      # 1 is a param
  
  Result:
yanggang@barry$ ./param.sh
    0
    
    1
    
    2
    
  
    3
    
    
    ===================================================
  
case 条件
mysql
    #!/bin/bash
case "$1" in
    start)
        echo "mysql start..."
        /etc/init.d/mysqld start
        ;;
    stop)
        echo "mysql stop..."
        /etc/init.d/mysqld stop
        ;;
    restart)
        echo "mysql restart..."
        /etc/init.d/mysqld stop
        /etc/init.d/mysqld start
        ;;
esac
exit 0
  
  httpd (apache)
    #!/bin/bash
case "$1" in
    start)
        echo "apache start..."
        /etc/init.d/httpd start
        ;;
    stop)
        echo "apache stop..."
        /etc/init.d/httpd stop
        ;;
    restart)
        echo "apache restart..."
        /etc/init.d/httpd restart
        ;;
    status)
        echo "apache status"
        /etc/init.d/httpd status
        ;;
esac
exit 0
  
  ===================================================
awk
Result:
    
      [work]$ sh cal_lines.sh 
      
    
    
      ls: *.h: No such file or directory
      
      91 test_performance_server.cpp
      
      178 test_performance_ubclient1.cpp
      
      230 test_performance_ubclient2_common_async.cpp
      
      204 test_performance_ubclient2_common_block.cpp
      
      206 test_performance_ubclient2_common_nonblock.cpp
      
      191 test_performance_ubclient2_common_single_block.cpp
      
      193 test_performance_ubclient2_common_single_nonblock.cpp
      
      237 test_performance_ubclient2_nshead_async.cpp
      
      220 test_performance_ubclient2_nshead_block.cpp
      
      218 test_performance_ubclient2_nshead_nonblock.cpp
      
      192 test_performance_ubclient2_nshead_single_block.cpp
      
      192 test_performance_ubclient2_nshead_single_nonblock.cpp
      
      
        2352
      
    
  
===================================================
linux实现两个文件内容相加(3种解法)
a.txt(10行) b.txt(9行)
解法一
运行结果:
    [work]$ 
    
      sh cal_ab1.sh 
      
    
    
      1 83
      
      1 77
      
      0 128
      
      24 195
      
      1 130
      
      68 227
      
      5 132
      
      197 233
      
      9 146
    
  
--------------------------------------------------------------------------------------
解法二
运行结果:
    [work]$ 
    
      sh cal_ab2.sh 
      
    
    
      1 83
      
      1 77
      
      0 128
      
      24 195
      
      1 130
      
      68 227
      
      5 132
      
      197 233
      
      9 146
      
      0 8
    
  
--------------------------------------------------------------------------------------
解法三
运行结果:
    [work]$ 
    
      sh cal_ab3.sh 
      
    
    
      1 83
      
      1 77
      
      0 128
      
      24 195
      
      1 130
      
      68 227
      
      5 132
      
      197 233
      
      9 146
      
      0 8
    
  
--------------------------------------------------------------------------------------
评析:
解法一,结果不准确,只输出了前9行
解法二,结果正确,但不够简洁
解法三,结果正确,简洁
===================================================
while循环
    # !/bin/sh
TOP_NUM=800
index=0
function url_down(){
while [ $index -le $TOP_NUM ]
    do
       echo $index
        index=`expr $index + 24`
done
}
url_down
  
  运行结果:
    yanggang@barry$
    
       ./tmp.sh
    
    
    0
    
    24
    
    48
    
    72
    
    96
    
    120
    
    144
    
    168
    
    192
    
    216
    
    240
    
    264
    
    288
    
    312
    
    336
    
    360
    
    384
    
    408
    
    432
    
    456
    
    480
    
    504
    
    528
    
    552
    
    576
    
    600
    
    624
    
    648
    
    672
    
    696
    
    720
    
    744
    
    768
    
    792
    
  
-------------------------------------------------------------------------------
参考拓展:
Linux Make(Makefile)由浅入深的学习与示例剖析
    
      
        参考推荐:
      
    
    
    
      Linux Shell函数返回值
    
    
  
    
      Linux 之 shell 比较运算符
    
    (推荐)
    
  
    
      Linux Shell学习简单小结
    
    (推荐)
    
  


 
       
       
					 
					