一. shell语言中的真假结果
shell语言中结果的真假与 C 语言中不同。在C语言中,如果结果为真则为 1,如果结果为假则结果为0。
在shell 编程中,如果结果为真:0。 如果结果为假:非0
注意:判断真或假的结果的值存放在符号 ? 中。可以通过打印符号 ? 获取结果。
举例如下:
#! /bin/bash
[ "hello" = "world" ]
echo $? #真或假结果保存在符号?中
以上代码执行结果为 1,即非0。
1. read 接收用户输入
shell 脚本编程中,read 为接收用户输入,并且,把输入的内容赋值给该变量。
语句格式如下:
read 变量名
举例如下:
//接收用户的一个输入,输入的是一个文件名,然后,打印该文件的详细信息
read -p “please input fileName: ” FILENANE
ls -l $FILENAME
//依次接收用户输入两个数据
read VAR1 VAR2
2. 算数运算符 expr
在 shell 编程中,加减乘数运算符如下:
c=` expr $a + $b` # 一定记住 $a和+和$b之间必须要打**空格**
c=`expr $a \* $b` # =两边不能有空格
c=`expr $a / $b`
c=`expr $a - $b`
c=`expr $a % $b`
举例如下:
接收用户输入两个数据,计算这两个数据的平方差
#! /bin/bash
read NUM1 NUM2
dec=`expr $NUM1 \* $NUM1 + $NUM2 \* $NUM2`
echo $dec
3. 测试命令
语法格式如下:
test 命令
或者
[ 命令 ] //[]与命令的前后都要有空格
(1) 字符串
str1 = str2 //比较两个字符串是否相等
str1 != str2 //比较两个字符串不相等
-z str //为空
-n str //不为空
(2) 两个整数
data1 -eq data2 //相等
data1 -ne data2 //不等于
data1 -gt data2 //大于
data1 -lt data2 //小于
data1 -ge data2 //大于等于
data1 -le data2 //小于等于
(3) 文件
-d filename //文件是否为目录
-e filename //文件或目录是否存在
-r filename //是否有可读权限
-w filename //文件是否可写
-x filename //文件是否可执行
filename1 -nt filename2 //filename1 是否比 filename2 新
filename1 -ot filename2 //filename1 是否比 filename2 旧
总结:
shell 脚本存在的意义在于: 在项目开发中,用于实现逻辑控制使用的。所以,在 shell 编程中,算数运算不太常用,常用的是一些有助于项目编译运行方便使用的,对文件的操作。