私房菜-13章scription-简单范例

来源:互联网 发布:linux查看文件个数命令 编辑:程序博客网 时间:2024/05/17 03:49
  • 对谈式脚本:变量内容由用户决定

这里最重要的两点就是echo和read ,其中read是读取使用者输入的文本内容,一般-p,读取名字输入,输出名字

  • 随日期变化:利用 date 进行档案的建立
建立每天不同的档名两个档案之间的比较,如: test file1 -nt file2
  • 数值运算:简单的加减乘除
两个变量的加减乘除

测试指令test,最常用的指令test -e /tutu &&echo 'exist'||echo 'NOT exist'
  • -e  该文档是否存在
  • -f  是否为文档
  • -d  是否为目录
  • -b 是否为个 block device 装置?
  • -c 该『档名』是否存在且为一个 characterdevice 装置
  • -S 该『档名』是否存在且为一个 Socket 档案
  • -p 该『档名』是否存在且为一个 FIFO (pipe) 档案?
  • -L 该『档名』是否存在且为一个连结档?
  • -r 该文档是否可读
  • -w 是否可写
  • -x 是否可执行
  • -u 是否具有『SUID』的属性
  • -g 是否具有『SGID』的属性
  • -k 是否有『Sticky bit』的属性
  • -s 是否非空文档
3.两个档案之间的比较,如: test file1 -nt file2
  • -nt (newer than)判断 file1 是否比 file2 新
  • -ot (newer than)判断 file1 是否比 file2 新
  • -ef 判断 file2 与 file2 是否为同一档案,可用在判断 hard link 的判定上。 主要意义在判定,两个档案是否均指向同一个 inode 哩!

4. 关于两个整数之间的判定,例如 test n1 -eq n2
  • -eq 两数值相等 (equal)
  • -nt 两数值不等 (not equal)
  • -gt n1 大于 n2 (greater than)
  • -lt n1 小于 n2 (less than)
  • -ge n1 大于等于 n2 (greater than or equal)
  • -le n1 小于等于 n2 (less than or equal)

5. 判定字符串的数据
  • test -z string 判定字符串是否为 0 ?若 string 为空字符串,则为 true
  • test -n string 判定字符串是否非为 0 ?若 string 为空字符串,则为 false。注: -n 亦可省略
  • test str1 = str2 判定 str1 是否等于 str2 ,若相等,则回传true
  • test str1 != str2 判定 str1 是否不等于 str2 ,若相等,则回传 false
6. 多重条件判定,例如: test -r filename -a -x filename
  • -a (and)两状况同时成立!例如 test -r file -a-x file,则 file 同时具有 r 与 x 权限时,才回传 true。
  • -o (or)两状况任何一个成立!例如 test -r file-o -x file,则 file 具有 r 或 x 权限时,就可回传 true。
  • ! 反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true

0 0
原创粉丝点击