网络运营

bash编程一之bash变量简介

Bash语言类型:
Bash语言:动态编程语言,弱类型语言。所谓弱类型语言,它包括如下特性:

1. 不强制区分变量类型,因此无论存储何种数据,均以字符格式进行。

2. 无需事先声明。需要使用时,直接使用,直接赋值

 

Bash变量类型:
1. 本地变量:只对当前shell进程中有效,对其子shell和其他shell无效

a) 定义:[set] Var_name=”Value”

b) 变量名要求:

i. 只能使用数字,字母和下划线组成

ii. 不能以数字开头

iii. 不能使用程序中的关键字

iv. 最好做到见名知义

c) 变量引用方式:

i. ${Var_name}。其中花括号可省略,但若$Var_name1,则需要加上{}

ii. 反引号:`Var_name`

d) 撤销变量:unset Var_name。注意不需要加上$

2. 局部变量:只对脚本文件的某一部分有效。声明方式和本地变量一致,但需要通过local Var_name=”Value”

3. 环境变量:表示bash的工作特性,保存当前会话的属性信息。对当前shell和子shell有效,对其他shell无效。

a) 显示所有的环境变量:

i. export

ii. env

iii. printenv

b) 定义方式:以纯大写字母命名,声明方式为 export VAR_NAME=”Value”

4. 位置变量:实现在脚本中引用参数的变量,比如$1,$2…  ${10},${11}…

5. 特殊变量:

a) $0表示脚本名称自身

b) $?返回上一条命令的执行状态

c) $$ shell本身的PID

d) $! Shell最后运行的后台进程的PID

e) $# 所有参数的个数

 

可通过set命令,显示当前shell进程的所有变量

Bash的配置文件
Bash的配置文件实现了持久保存用户配置,当bash登陆时将读取一次。它分为以下几类:

1. profile 类:

a) 为交互式登录的用户提供配置

b) /etc/profile:全局设定环境变量,可用于运行命令或脚本(比如提示欢迎信息)

c) /etc/profile.d/*.sh  全局的环境变量设定

d) ~/.bash_profile:仅对当前用户有效。可运行命令或脚本

2. bashrc类:

a) 为非交互式登录的用户提供配置

b) /etc/bashrc:全局,比如脚本执行时需要先设定执行环境;设定本地变量;设定命令别名等等。注意需要重新登录或者source ./bashrc重读配置文件。

通知shell重读配置文件的命令:source 或者简写为 .

c) ~/.bashrc:个人配置

 

登录类型
1. 交互式登录:终端通过输入账号,密码登陆。直接通过终端输入用户信息登录系统

2. 非交互式登录:

a) 通过su Username 或 su – username;

b) 图形界面下的终端登陆

c) 执行脚本

在不同登陆类型下,bash配置文件的生效域:

1. 交互式登录用户:

/etc/profile à /etc/profile.d/*.sh à ~/.bash_profile à ~/.bashrc à /etc/bashrc

2. 非交互式登录用户:

~/.bashrc à /etc/bashrc à /etc/profile.d/*.sh

Be the First to comment.

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注

126 views