shell脚本学习_功能语句_2

学习目标:

学习常用功能语句:read、expr、test

 

总结:

read可读入并传递给变量

expr可用于算数运算

test可用于整数、字符、文件比较,感觉可用于条件判断。

 

正文:

1- 输入read

功能:读入输入的参数赋值给变量

 

a- 单个输入

格式:

read param

 

b- 多个输入

多个输入格式:

read param0 param1 param2

说明:

如果只输入了1个参数就按了回车,则后面的两个变量无赋值。

如果输入的参数多于变量个数,则多余的参数全部赋值给最后一个变量

#!/bin/bash

echo -n "input data(year month date):"
read year month date
echo "time:$year-$month-$date"

 

注意:对于bash不换行用-n参数;对于sh脚本不换行用\c

#sh脚本不换行 \c
echo "input data(year month date):\c"

#bash脚本不换行 -n
echo -n "input data(year month date):"

 

2- 算数命令expr

expr可用于算数运算。运算符前后有空格;乘法用\*

注意如果将结果赋值给另一变量,使用反引号(esc下面和~在一块的反引号!)

示例:

#!/bin/bash

ret=`expr 2 + 3 \* 2`
echo $ret

 

3- 测试test

可用于测试数字、字符、文件。测试结果可用$?打印,表示上次命令执行结果,正确返回0。

a-  数字测试

eq 等於则为真
-ne 不等於则为真
-gt (greater)大於则为真
-ge 大于等於则为真
-lt (lower)小於则为真
-le 小于等於则为真

 

b-  字符测试;

= 等於则为真
!= 不相等则为真
-z 字符串 字符串的长度为零则为真
-n 字符串 字符串的长度不为零则为真

 

c-  文件测试:

-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-x 文件名 如果文件存在且可执行则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真

此外还有选项-nt、-ot 文件1是否文件2新、旧。

 

示例:

#!/bin/bash

#数字测试
test 6 -eq 6
echo $?

#字符测试
test "hello" = "hi"
echo $?

#文件测试
test -e hello.c
echo $?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章