shell编程

1. 基本结构

e.g. hello.sh

    #!/bin/bash

    #hello

    echo 'hello Linux'

    echo 'this is a shell file.'

 

2. 局部变量

无数据类型、使用赋值符号(=)为变量赋值、前加$符号即可访问、使用echo命令输出

 

3.环境变量

查看:使用export命令

访问:执行echo $variable_name输出

定义:

    a. 执行export a=1234

    b. 修改系统环境变量配置文件,添加export a=1234命令,如/etc/profile等,详见[附录1]

 

4. 位置变量

同普通变量一样,只是使用$前缀加数字表示,用于向shell程序传递参数,类似于argv[]

e.g. test.sh

    #!/bin/bash

    echo $1

    echo $2

    echo $3

执行:./test.sh Guangzhou is beautiful

输出:

    Guangzhou

    is

    beautiful

 

5. 运算符

赋值: =

算术: + - * / ** % += -= *= /= %=

运算顺序: 运行echo 1+2时,输出了1+2,需要进行额外的操作来更改运算顺序

运行echo `expr 1+2`,用expr表示后面的表达式是一个数学运算

运行let b=1+2,echo $b,用let指示数学运算

运行echo $[1+2],用$[]表示数学运算

 

6. 输入输出

1)echo命令输出结果

    -e 格式控制字符:\c \t \n

2)read命令读取信息

3)文件重定向

    command > filename

    command >> filename [追加]

    command 1 > filename

    command > filename 2>&1

    command 2 > filename

    command 2 >> filename

    command >> filename 2>&1

    command < filename > filename2

    command < filename

 

7. 引号使用

双引号 ""

单引号 ''

反引号 ``

反斜线 \

 

8. 测试语句

文件状态测试

-d -f -L -x -s -w -u -r

数值测试

-eq -le -gt -ne -ge -lt

字符串测试

= != -z -n

逻辑测试

-a -o !

 

9. 流程控制结构

if语句

    if 条件
    then 命令1
    fi

    if 条件
    then 命令1
    else 命令2
    fi

    if 条件1
    then 命令1
    elif 条件2
    then 命令2
    else 命令3
    fi

for语句

    for 变量 in 列表
    do
    命令1
    命令2
    done

until语句

    until 条件
    do
    命令1
    done

 


 

附录1

1. 系统级:

(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。/etc/bash.bashrc:系统级的bashrc文件。

(2)/etc/environment:在登录时操作系统使用的第二个文件,系统在读取用户profile前,设置环境文件的环境变量。

 

2. 用户级(这些文件处于/home/user_name目录下):

(1)~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方。

(2)~/.bashrc:该文件包含专用bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。每开一个shell,这个文件会读取一次,效率肯定有影响。

 

posted @ 2017-10-27 16:55  wmxfd  阅读(233)  评论(0编辑  收藏  举报