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,这个文件会读取一次,效率肯定有影响。
版权声明:本文为博主原创文章,未经博主允许不得转载。