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