shell脚本学习

来源:互联网 发布:mac ps找不到导入照片 编辑:程序博客网 时间:2024/05/11 01:49

Shell 学习

1.shell 解释型语言,有很多种解释器。默认是/bin/bash。

Shell脚本第一行要写:

#!/bin/bash

2.shell脚本运行的方法

1)sh **.sh

2)chmod a+x **.sh

./**.sh

注意,一定要写成./**.sh,而不是**.sh。

运行其它二进制的程序也一样,直接写**.sh,linux系统会去PATH里寻找有没有叫**.sh的,而只有/bin,/sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成**.sh是会找不到命令的,要用./**.sh告诉系统说,就在当前目录找。

3)sh命令去执行一个shell脚本的时候是可以加-x选项来查看这个脚本执行过程的,这样有利于我们调试这个脚本哪里出了问题。

sh –x **.sh

 

3.1)#是注释

2);作为命令的分隔符

3)单引号、双引号、反引号

当变量内容带有特殊字符(如空格)时,需要加上单引号

变量内容中本身带有单引号或者引用其他变量的内容,需要用到双引号了

变量内容中需要用到其他命令运行结果则可以使用反引号,在ESC下面。

http://www.92csz.com/study/linux/12.htm

学习shell脚本之前的基础知识

4.定义变量& 使用变量

1)variableName="value",变量名和等号之间不能有空格,注意variableName的值都是String,要是值没有空格什么的,就可以什么不加;否则,用单引号或者双引号

2)使用一个定义过的变量,只要在变量名前面加美元符号($)即可

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

 

5.定义数组

在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
    数组名=(值1 值2 ... 值n)

读取数组元素值的一般格式是:
    ${数组名[下标]}

#使用@符号可以获取数组中的所有元素

echo ${array_name[@]}

# 取得数组元素的个数

length=${#array_name[@]}

6. test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

http://see.xidian.edu.cn/cpp/view/7004.html

Shell test命令

数值测试

参数

说明

-eq

等于则为真

-ne

不等于则为真

-gt

大于则为真

-ge

大于等于则为真

-lt

小于则为真

-le

小于等于则为真

字符串测试

参数

说明

=

等于则为真

!=

不相等则为真

-z 字符串

字符串长度伪则为真

-n 字符串

字符串长度不伪则为真

文件测试

参数

说明

-e 文件名

如果文件存在则为真

-r 文件名

如果文件存在且可读则为真

-w 文件名

如果文件存在且可写则为真

-x 文件名

如果文件存在且可执行则为真

-s 文件名

如果文件存在且至少有一个字符则为真

-d 文件名

如果文件存在且为目录则为真

-f 文件名

如果文件存在且为普通文件则为真

-c 文件名

如果文件存在且为字符型特殊文件则为真

-b 文件名

如果文件存在且为块特殊文件则为真

 

UID用来检查是不是超级用户(UID=0)还是普通用户

7.ifelse

8.case

9.for

10.

date "+%Y%m%d %H:%M:%S"

20140626 02:02:55


0 0