Linux _ Shell编程 — 功能语句

一、说明性语句

  • 以#号开始到结束,不被解释执行。
  • 文本第一行:#!/bin/sh     ------------  告诉os用哪种类型的shell来解释执行该程序。

二、常用功能性语句

  • 任意的shell命令、用户程序或其它的shell程序。

1、常用功能性语句(read命令)

  • read  var    ---------   把读入的数据全部赋给var
  • read var1  var2  var3   ------------  把读入行中的第一个单词(word)赋给var1,第二个单词(word)赋给var2,.........  把其余所有的词赋给最好一个变量。
  • 如果执行read语句时标准输入无数据,则程序在此停留等候,知道数据的到来或被终止运行。

               #!/bin/bash  时 echo -n 换行           ------------- #!/bin/sh   时 echo "houg : \c"换行。

2、expr命令

  • 算术运算命令expr主要用于进行简单的整数操作,包括加(+)、减(-)、乘(*)、整除(/)和求模(%)等操作。

           例如:expr 12 + 5 \* 3         ------------  27

                       expr 3 - 8 / 2              ------------ 1     --------------------  算术符号两端要加  空格

           num=9                            ------------------  变量赋值不要空格

           sum=`expr $num \* 6`  -------------------   整体赋值需要置换符(esc下面的·)

           echo $sum              ----------------------  调用变量要用$

           54

三、结构性语句

  • 条件测试语句、多路分支语句、循环语句、循环控制语句等。

1、条件测试语句

  • test 语句可测试三种对象

                字符串          整数        文件属性

  • 每种测试对象都有若干测试操作符
  • 例如:

                test  "$answer" = "yes"    ------  变量answer的值是否为字符串yes

                test  $num    -eq    18       ------  变量num的值是否为整数

                test  -d   tmp                      ------  测试tmp是否为一个目录名

2、字符串测试 

  • s1 = s2            测试两个字符串的内容是否一致
  • s1 != s2          测试两个字符串的内容是否有差异一致 
  • -z    s1             测试s1字符串的长度是否为0
  • -n       s1         测试s1字符串的长度是否不为0

3、整数测试

  • a  -eq   b             测试a 与b 是否相等
  • a  -ne   b             测试a 与b 是否不相等
  • a  -gt   b              测试a 是否大于b
  • a  -ge   b             测试a 是否大于等于b
  • a  -lt   b                测试a 是否小于b
  • a  -le   b              测试a 是否小于等于b
#!/bin/bash

A="ZHOU"
B="BIFE"

echo $A=$B
echo $?

echo ls file
echo $?

echo pwd
echo $?

输出 : 1(字符串A与B相等输出结果0,不相等输出结果1) 且    echo $? :输出上一条判断结果。

4、文件的测试

  •  -d    name                     :测试name是否为一个目录
  •  -e    name                     :测试一个文件是否存在
  •  -f     name                     :测试name是否为普通文件
  •  -L    name                     :测试name是否为符号链接
  •  -r     name                     :测试name是否存在且为可读
  •  -w    name                     :测试name是否存在且为可写
  •  -x     name                     :测试name是否存在且为可执行
  •  -s     name                     :测试name是否且其长度不为0
  •  f1  -nt  f2                        :测试文件f1是否比文件f2更新
  •  f1  -ot  f2                        :测试文件f1是否比文件f2更旧

  例如:

#!/bin/bash
echo -d /home/linux/test/shlldmo/file_test.sh            

echo $?

输出为 :   1

#!/bin/bash
echo -x /home/linux/test/shlldmo/file_test.sh            

echo $?

输出 为 :0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值