文档章节

shell编程笔记

黑鹰客栈
 黑鹰客栈
发布于 2017/08/09 16:47
字数 926
阅读 14
收藏 1

1.shell 编程中使用到得if语句内判断参数

  –b 当file存在并且是块文件时返回真

  -c 当file存在并且是字符文件时返回真

  -d 当pathname存在并且是一个目录时返回真

  -e 当pathname指定的文件或目录存在时返回真

  -f 当file存在并且是正规文件时返回真

  -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

  -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

  -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真

  -p 当file存在并且是命令管道时返回为真

  -r 当由pathname指定的文件或目录存在并且可读时返回为真

  -s 当file存在文件大小大于0时返回真

  -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真

  -w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

  -o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

  UNIX Shell 里面比较字符写法:  

   -eq 等于

  -ne 不等于

  -gt 大于

  -lt 小于

  -le 小于等于

  -ge 大于等于

  -z 空串

  = 两个字符相等

  != 两个字符不等

  -n 非空串

举例:判断文件类型

#!/bin/bash
#
if [ $# -lt 1 ];then
	echo "Usage: $0 <path>"
	exit 1
fi

if [ -f  $1 ];then
	echo "Rgulat file."
elif [ -d $1 ];then
	echo "Directory"
elif [ -h $1 ];then
	echo "Symbolic link."
elif [ -b $1];then
	echo "Block special."
else 
	echo "file not exist or unknow type."
fi

-------------------------------------------------------------------------

2.shell中echo常用参数详解功能说明:显示文字。
语   法:echo [-ne][字符串] / echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数

    -n 不要在最后自动换行
    -e 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
           \a 发出警告声;
           \b 删除前一个字符;
           \c 最后不加上换行符号;
           \f 换行但光标仍旧停留在原来的位置;
           \n 换行且光标移至行首;
           \r 光标移至行首,但不换行;
           \t 插入tab;
           \v 与\f相同;
           \\ 插入\字符;
           \nnn 插入nnn(八进制)所代表的ASCII字符;
    -E 取消反斜杠ESC转义 (默认)
    -help 显示帮助

    -version 显示版本信息 

举例:99乘法表

#!/bin/bash
#
declare -i i=1;
declare -i j=1;

while [ $j -le 9 ];do
        while [ $i -le $j ];do
                echo -e -n  "${i}X${j}=$[$i*$j]\t"
                let i++
        done
        echo
        let i=1
        let j++
done

执行后,显示格式:

[root@apple 5]# bash 9\*9.sh 
1X1=1	
1X2=2	2X2=4	
1X3=3	2X3=6	3X3=9	
1X4=4	2X4=8	3X4=12	4X4=16	
1X5=5	2X5=10	3X5=15	4X5=20	5X5=25	
1X6=6	2X6=12	3X6=18	4X6=24	5X6=30	6X6=36	
1X7=7	2X7=14	3X7=21	4X7=28	5X7=35	6X7=42	7X7=49	
1X8=8	2X8=16	3X8=24	4X8=32	5X8=40	6X8=48	7X8=56	8X8=64	
1X9=9	2X9=18	3X9=27	4X9=36	5X9=45	6X9=54	7X9=63	8X9=72	9X9=81	

3.shell中seq 用于生成从一个数到另一个数之间的所有整数。

用法:seq [选项]... 尾数
 或:seq [选项]... 首数 尾数
 或:seq [选项]... 首数 增量 尾数

举例:

#!/bin/bash
#count 1-100 number

declare -i sum=0

for i in $(seq  0 2 100); do
	sum=$(($sum + $i))
done

echo "Even sum: $sum"

 

© 著作权归作者所有

共有 人打赏支持
上一篇: CentOS7安装MySQL
下一篇: awk学习记录
黑鹰客栈
粉丝 1
博文 42
码字总数 26970
作品 0
天津
程序员
私信 提问
免费的编程中文书籍索引

免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版 github 上的一个流行的编...

modernizr
2014/04/08
7.3K
24
shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句

笔记内容: 20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断 笔记日期:2017-11-22 20.5 shell脚本中的逻辑判断 在所有的编程语言中都会有if语句来进...

ZeroOne01
2017/11/22
0
0
如何学习Liunx和个人学习大纲

提醒不甘平凡的我 2009大学刚刚毕业(不是正规大学,没来北京之前,在家里不是打架就是闲逛,家里人怕早晚出事,索性花钱上了这个“大学”)找了一家IT培训机构。当时的培训机构出名两家:“...

jcpokai521
2017/02/28
0
0
Fanta/free-programming-books-zh_CN

免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版...

Fanta
2016/11/14
0
0
开源电子书

目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 ...

zting科技
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部