Chinaunix首页 | 论坛 | 博客
  • 博客访问: 836720
  • 博文数量: 489
  • 博客积分: 475
  • 博客等级: 下士
  • 技术积分: 3087
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 16:28
文章分类

全部博文(489)

文章存档

2013年(7)

2012年(301)

2011年(181)

分类:

2011-12-22 22:04:24

原文地址:shell脚本编程 作者:luozhiyong131

#case语句简单应用编程

#输入大写字母A - D,输出相应的语句

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash

echo -n "Input a chatacor A - D: "             #输出不换行

read IN                                            #读入一个实际字符

case $IN in

A)

    echo "chatacor A"                         #如果输入为A则输出chatacor A

    ;;

B)

    echo "chatacor B"

    ;;

C)

    echo "chatacor C"

    ;;

D)

    echo "chatacor D"

    ;;

Esac

 

变量赋值时,“=”左右两边都不能有空格

BASH 中的语句结尾不需要分号

           

       

#for语句

#格式for 变量名 in [列表]

#使用变量名来遍历列表中所有的取值

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash

for LO in A B C D

do

    echo $LO

Done

 

其 中 $var 是循环控制变量,[list] var 需要遍历的一个集合,do/done 对包含了循环体,相当于 C 语言中的一对大括号。另外如果do for 被写在同一行,必须在do 前面加上 “;”。如: for $var in [list]; do

           

       

#break跳出

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash

while :

do

    echo -n "Input a number: "

    read IN                                    #读入数字

    case $IN in

        1|2|3|4|5)                        

            echo "number 1 ~ 5"              #是否是1 5

            ;;

        *)

            echo "number>5, exit"

            break;                         #退出

            ;;

        esac

Done

 

 

 

#局部变量

#在变量首次被赋值时加上 local 关键字可以声明一个局部变量

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash  

var="var1"

echo $var

function func1

{

    local var="var2"

    echo $var

}

func1

echo $var

 

 

 

#实现对两个脚本参数的比较

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash  

 

if [ -z $1 ] || [ -z $2 ]           #特殊变量第一、二个命令行参数是否为空

then

    echo "please enter 2 no"

    exit 1

fi

 

if [ $1 -eq $2 ] ; then                  #两数相等

    echo "number a = number b"

else if [ $1 -gt $2 ]

    then

        echo "number a > number b"

    else  

        echo "number a < number b"

    fi 

fi

 

注意:

1. 在“[”和“]”符号的左右都留有空格

2. =”左右都有空格

 

 

 

#文件判断

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash  

 

[ -r $(pwd) ] && echo "Can read $(pwd)"

[ -f $(pwd) ] || echo "this is not file"

 

 

文件统计

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash

 

counter=0

for files in *

do

    counter=`expr $counter + 1`

done

echo $counter

 

 

 

#将输入的数字按倒序的方式输出

#AuthorLzy     时间:2011-4-15

 

#!/bin/bash

 

echo -n "Pleasw enter number : "

read n

while [ $n -gt 0 ]

do

    sd=$(( $n % 10 ))

    n=$(( $n / 10 ))

    echo -n $sd

done

echo

 

 

#AuthorLzy     时间:2011-4-15

#!/bin/bash

echo "Hit a key, then hit return."

read Keypress

 

case $Keypress in

    [A-Z] )    echo "Uppercase letter";;

    [a-z] ) echo "Lowercase letter";;

    [0-9] ) echo "Digit";;

    * ) echo "Punctuation, whitespace, or other";;

esac

   

一小时——第一部分:Linux&Shell

阅读(727) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~