lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/shnum1=100
num2=200
if [ $num1 -eq $num2 ]
thenecho "num1 eq num2"
elseecho "num1 no eq num2"
filng@ubuntu:~/myshell$ ./myTest.sh
num1 no eq num2
lng@ubuntu:~/myshell$
lng@ubuntu:~/myshell$ ls
a.txt b.txt dire myTest.sh
lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/sh
if test -f a.txt;thenecho "a.txt is file"
fiif [ -f b.txt ];thenecho "b.txt is file"
fiif [ -d dire ];thenecho "dire is directory"
fi
lng@ubuntu:~/myshell$ ./myTest.sh
a.txt is file
b.txt is file
dire is directory
lng@ubuntu:~/myshell$
3 控制结构
3.1 if语句
if语句非常简单:它对某个命令的执行结果进行测试,然后根据测试结果有条件地执行一组语句。
语法结构
if condition
thenstatements
elsestatements
fi
测试用例
lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/shecho "please input yes or no!"#读取终端输入
read tempif [ $temp = "yes" ]
thenecho "you input is yes"
elseecho "you input is no"
filng@ubuntu:~/myshell$ ./myTest.sh
please input yes or no!
yes
you input is yes
lng@ubuntu:~/myshell$
3.2 elif
语法结构
if condition1
thenstatements
elif condition2
thenstatements
elsestatements
fi
测试案例
lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/shecho "please input yes or no!"#读取终端输入
read tempif [ $temp = "yes" ]
thenecho "you input is yes"
elif [ $temp = "no" ]
thenecho "you input is no"
elseecho "you input unknow"
filng@ubuntu:~/myshell$ ./myTest.sh
please input yes or no!
fff
you input unknow
lng@ubuntu:~/myshell$
3.3 for语句
我们可以用for结果来循环处理一组值,这组值可以是任意字符串的集合。
语法结构
for variable in values
dostatements
done
测试案例
lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/shfor fruit in apple bnana pear;
doecho "I like $fruit"
donelng@ubuntu:~/myshell$ ./myTest.sh
I like apple
I like bnana
I like pear
lng@ubuntu:~/myshell$
lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/shmyFunc(){echo "this is myFunc"
}echo "------"
myFunc
echo "++++++"
lng@ubuntu:~/myshell$ ./myTest.sh
------
this is myFunc
++++++
lng@ubuntu:~/myshell$
函数传入参数
lng@ubuntu:~/myshell$ cat myTest.sh
#! /bin/shmyFunc(){echo "param num is $#"echo "param 1 is $1, param 2 is $2"echo "this is myFunc"
}echo "------"
myFunc aaa bbb
echo "++++++"
lng@ubuntu:~/myshell$ ./myTest.sh
------
param num is 2
param 1 is aaa, param 2 is bbb
this is myFunc
++++++
lng@ubuntu:~/myshell$