Shell基本命令(下)

一、test 命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
数值测试:-eq, -ne, -lt, -gt, -le, -ge
字符串测试: =, !=,
文件测试:
-e 文件名: 如果文件存在则为真
-r 文件名: 如果文件存在且可读则为真
-w 文件名: 如果文件存在且可写则为真
-x 文件名: 如果文件存在且可执行则为真
-s 文件名: 如果文件存在且至少有一个字符则为真
-d 文件名: 如果文件存在且为目录则为真
-f 文件名: 如果文件存在且为普通文件则为真
-c 文件名: 如果文件存在且为字符型特殊文件则为真
-b 文件名: 如果文件存在且为块特殊文件则为真
like:
cd /bin
if test -e ./bash
then
echo '文件已存在!'
else
echo '文件不存在!'
fi

like:
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '两个数相等!'
else
echo '两个数不相等!'
fi

二、流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空
1、if:
if condition
then
command1
command2
...
commandN
fi

2、if else:
if condition
then
command1
command2
...
commandN
else
command
fi

3、for 循环:
for var in item1 item2 ... itemN; do command1; command2… done;

4、while 语句:
while condition
do
command
done

5、case:case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac

6、break:允许跳出所有循环
7、continue:continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

三、函数
1、语法:可以带function fun() 定义,也可以直接fun() 定义,不带任何参数;参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255),函数返回值在调用该函数后通过 $? 来获得。
2、函数参数:调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值。例如,$1表示第一个参数。
add(){
echo "first parameter: $1"
echo "second parameter: $2"
return $(($1+$2))
}
add 1 2
echo $?

四、文本包含
Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。语法:
. filename # 注意点号(.)和文件名中间有一空格
或 source filename
eg:
test1.sh 代码如下:
url="http://www.runoob.com"
test2.sh 代码如下:
. ./test1.sh
echo "菜鸟教程官网地址:$url"

你可能感兴趣的:(Shell基本命令(下))