Linux Shell脚本极简入门

case...esac

    case 种类方式(string) in   --开始阶段,种类方式可分成两种类型,通常使用 $1 这种直接输入类型
      种类方式一)
      程序执行段
      ;;                       --种类方式一的结束符号
      种类方式二)
      程序执行段
      ;;
      *)
      echo "Usage: {种类方式一|种类方式二}"   --列出可以利用的参数值
      exit 1
    esac                       --case结束处

种类方式(string)的格式主要有两种:
直接输入:就是以“执行文件 + string”的方式执行(/etc/rc.d/init.d 里的基本设定方式),string可以直接写成$1(在执行文件后直接加入第一个参数)。
交互式:就是由屏幕输出可能的项,然后让用户输入,通常必须配合read variable,然后string写成$variable的格式

例:
    echo "This program will print your selection!"
      case $1 in  --使用直接输入指令形式
      one)
      echo "your choice is one"
      ;;
      two)
      echo "your choice is two"
      ;;
      three)
      echo "your choice is three"
      ;;
      *)
      echo "Usage {one|two|three}"  --列出可以使用的参数
      exit 1   --如输入错误参数就退出
    esac

7、循环

for ((条件1; 条件2; 条件3))        --已经知道要运行几次                   
        do  
        执行语句    
        done
for variable in variable1 variable2   --已经知道要运行几次
        do  
        执行语句    
        done
while [ condition1 ] && { | | } [ condition2 ]     --当条件符合时就继续执行
        do  
        执行语句    
        done
until [ condition1 ] && { | | } [ condition2 ]     --直到条件符合时候才退出程序
        do  
        执行语句    
        done


例1:
   declare -i s     --变量声明
   for (( i=1; i<=100; i=i+1 ))
    do
      s=s+i
    done
   echo "The count is ==> $s"


例2:
    declare -i i
    declare -i s
    while [ "$i" != "101" ]
      do
        s=s+i
        i=i+1
      done
    echo "The count is ==> $s"

例3:
   declare -i i
   declare -i s
   until [ "$i" = "101" ]
     do
       s=s+i
       i=i+1
     done
   echo "The count is ==> $s"

例4 判断非数字类型:
    LIST="Tomy Jony Mary Geoge" 
    for i in $LIST
      do
        echo $i
      done

8、调试脚本

sh [-nvx] scripts
-n         --不执行脚本,查询脚本内的语法,若有错误则列出
-v         --在执行脚本之前,先将脚本的内容显示在屏幕上
-x         --将用到的脚本内容显示在屏幕上,与-v稍微不同

9、shell中变量自增的实现方法 
 1. i=`expr $i + 1`;
 2. let i+=1;
 3. ((i++));
 4. i=$[$i+1];
 5. i=$(( $i + 1 ))

10、Linux Shell 对文件的操作

读取配置文件
配置文件config内容如下:
   name=example
读取配置文件方式一:cat config.ini |echo $name
读取方式二:
   source config
   echo $name  

五、Linux Shell其他特殊实现

1、同时执行两个命令
command & --后台运行

2、删除某些文件除外的所有文件
其中rm -f  !(a) 最为方便。如果保留a和b,可以运行rm -f !(a|b)来实现。
不过一般bash中运行后会提示“-bash: !: event not found ” 可以通过运行shopt -s extgolb来解决。
   [root@localhost abc]# rm -f !(a)
   -bash: !: event not found
   [root@localhost abc]# shopt -s extglob
   [root@localhost abc]# rm -f !(a)
   rm -rf !(*.tar.gz|tiplog) 保留tar.gz和tiplog,删除其他所有文件。

上一页123下一页

喜欢 | 6 不喜欢 | 0