shell编程听课笔记

alwayshelloworld 2010-10-17

1.开头:

#!/bin/bash

2.可执行:chmode +x filename

3.注释: #

4.使用变量:

set variable a 
a="hello" 
echo $a

防止混淆${a}

默认变量:

$#:传入脚本的命令行参数个数

$*:所有命令行参数值

$0:命令本身

$1:第一个命令行参数

$2:第二个命令行参数

局部变量

hello="var1" 
echo $hello 
function func1{ 
    local hello="var2" 
    echo $hello 
} 
func1 
echo $hello

5.if语句

if [ expression ] 
then 
    #code block 
else 
    #code block
 fi
if [ expression ] ; then 
    #code block 
elif [ expression ]
    then 
        #code block 
    else 
        #code block
    fi
fi

6.比较:

整数比较:-eq -ne -gt -lt -ge -le

字符串比较:= !=  >   <  >= <= -z(空) -n(非空)

文件比较:

-e 文件已存在

-f 文件是普通文件

-s 文件大小不为零

-d 文件是一个目录

-r 可读

-w 可写

-x 可执行

例如:

$folder=/home

[ -r "$folder" ] && echo "can read $folder"

注意:

[和]左右都留有空格

=左右都有空格

[ expression ] && code 为真执行code

[ expression ] || code 为假执行code

7.循环

for: 

for var in [list] 
do 
    #code block 
done 

#或者 
for var in [list]; do #注意分号 
     #code block 
done

  例如:

#!/bin/bash 
for day in Sun Mon Tue Wed Thu Fri Sat 
do 
    echo $day 
done

  while:

while [ condtion ] #为真时执行 
do 
     #code block 
done

 until:

until [ condtion ] #为假时执行 
do 
    #code block 
done

8.分支语句:

case:

case "$var" in 
    condition 1) 
         ;; 
    condition 2) 
        ;;
    *) 
        default statments;;
esca

例如:

#!/bin/bash 
read Keypres 
case "$Keypress" 
   in [A-Z]) 
       echo "Uppercase letter";; 
   [a-z]) 
      echo "Lowercase letter";; 
    *) 
      echo "Other";; 
esca

相关推荐