您的位置:首页 > 运维架构 > Shell

关于shell变量的基础概念

2015-04-08 16:31 316 查看
1.声明与使用

1.1语法

变量名=值 #注意没有空格

变量没有数据类型

1.2使用变量

${变量名}

如果没有歧义情况{}可以省略

1.3数据类型

理论上bash不支持数据类型,但扩展支持整数类型与数组

语法:

declare -i 变量=值

typeset -i 变量=值

1.4变量的修饰

常量

declare -r 常量名=值

readonly 常量名

declare -r 后不能在下一行赋值

1.5 变量的作用范围与导出变量

1.5.1 代码内的变量作用范围

()与{}的差异

()执行另外建立子shell环境来执行()

{}当前shell环境执行,同一环境

shell环境[变量的作用范围,环境变量,设置选项]

1.env打印系统环境变量

2.set打印当前shell的环境变量与设置

3.set -o打印shell选项设置

4.开启选项

set -o 选项名

5.关闭选项

set +o 选项名

1.5.2 shell脚本与shell脚本之间

a.shell的调用方式

fork的调用 直接调用:建立子进程

exec的调用 加载调用:使用shell替代当前的

source调用 代码包含:等价于c的#include

b.全局永远不要指望访问局部

局部可以访问全局.bash需要额外处理

1.5.3变量的导出

declare -x 变量1 变量2....

export 变量1...

结论:

在系统的配置文件的变量导出使用,必须使用export

set -o allexport开启 全部变量导出

1.6 特殊的变量

1.6.1 环境变量

PATH:执行程序的搜素路径

PS1:命令提示符号

\! 显示该命令的历史记录编号。

\# 显示当前命令的命令编号。

\$ 显示$符作为提示符,如果用户是root的话,则显示#号。

\\ 显示反斜杠。

\d 显示当前日期。

\h 显示主机名。

\n 打印新行。

\nnn 显示nnn的八进制值。

\s 显示当前运行的shell的名字。

\t 显示当前时间。

\u 显示当前用户的用户名。

\W 显示当前工作目录的名字。

\w 显示当前工作目录的路径。

PS1="\t"

PS2:

提示符号支持特殊的转义符号

1.6.2 命令行变量

$0:命令本身

$1....$9:命令行参数

$* $@ :所有命令行参数

$#:命令行参数个数

1.6.3 命令执行状态码

$?

状态码0-255

$$ 进程ID $PID
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: