`

《Linux Shell》之五:变量和引用

阅读更多

变量本质上是存储数据的一个或多个计算机内存地址。

变量分为:本地变量、环境变量、位置参数。其中位置参数用于向shell脚本传递参数,是只读的。

unset var可将var变量清除掉

变量赋值两种特殊情形,使用的时候一定要用$符号和大括号括起来:

${variable:=value}  --> 对未赋值的variable,将value值赋给它

${variable:-value}   --> 对未赋值的variable,将value值赋给它,但value值不存储到variable对应的地址空间

${variable?value}用来测试变量是否被赋值

# readonly variable  --> 设置变量为只读的

 

6.1.2 无类型的Shell脚本变量

Shell脚本变量是无类型的,这与awk变量是一样的。

Bash不支持浮点型,只支持整形和字符型,默认情况下,bash脚本变量是字符型的,同时,字符型变量还有个整形值0.也就是说你拿字符型变量做数值运算,它的值其实是0

 

对于空字符串和未定义变量处理方式,shell变量默认就是字符型的,字符型的初始值为空,而且可以不预先定义变量而直接使用它,跟初始化定义它为""效果是一样的。

 

 >>几个环境变量配置文件

由于Linux环境变量数量较多,因此系统管理员不会利用export逐个设置环境变量,而是将export命令放置在特殊的配置文件中,Shell能够在开机的时候自动执行这些配置文件。

.bash_profile:

最最重要的配置文件,当某linux用户登录时,shell会自动执行.bash_profile文件,如果.bash_profile文件不存在,则自动执行系统默认的配置文件/etc/profile

修改此配置文件后要立即生效,请使用 source 或.  命令

.bashrc:

如果用户由当前shell创建一个新的子shell,子shell会尝试读取.bashrc中命令以设置环境变量。.bashrc使得用户登录时的环境变量与子shell环境变量相分离。

.bash_logout:

.bash_logout文件在用户注销时执行

 

6.1.4 位置参数

位置参数 positional parameters是一种特殊shell变量,用于从命令行向shell脚本传递参数,$1表示第1个参数、$2表示第2个参数等。$0表示脚本名称(带路径) ,$* 或 $@表示从$1开始的全部参数列表

-----------------特殊变量-----------------------

$#  传递到脚本的参数数量

$*或$@ 传递到脚本的所有参数

$$  脚本运行的进程号

$? 命令的退出状态,0表示没有错误,非0表示有错误

 

引用符号及其意义:

""  引用除$、反引号、反斜杠\之外的所有字符

''   引用所有的字符

反引号  shell将反引号中内容解释为系统命令

\    转义符,屏蔽下一个字符的特殊意义

 

6.2.3  转义字符

特殊字符及其意义

特殊字符 意义
& 传递到脚本的参数数量
* 0个或多个在*字符前的那个普通字符
+ 匹配1个或多个在其之前的普通字符
^ 匹配行首,或后面字符的非
$ 命令退出状态,0表示没错误,非0...
` 反引号,shell引用符号,解析命令
" 双引用,shell引用符号
| 管道符号或表示“或”意义
? 匹配0个或1个其前的普通字符
\ 转义符本身

 

转义符后跟字母表示的特殊意义:

符号 意义
\n 换行
\r 回车
\t Tab键
\v或\f 换行但光标停留在原来位置
\b Backspace键
\a 警报声
\0xx ASCII码0xx对应字符

 

# echo $'\t\thello'

使用$' '后,单引号里面的转义加特殊字母就可以解析成特殊意义了。

其他情况下就是原始值了。

 

 本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    Linux Shell编程基础

    Linux Shell编程基础 1.调用shell 2.注释 3.执行shell脚本 4.接收用户输入并赋值给变量 5.Bash中的变量 1. 环境变量 1.1HOME 2.2LANG 3.3SHELL 4.4PATH 5.5PS1 6.6PS2 7.7只读环境变量 8.8永久修改环境变量 2. 位置...

    Linux Shell编程从初学到精通 第2版

    第6章 变量和引用 133 第7章 退出、测试、判断及操作符 157 第8章 循环与结构化命令 187 第9章 变量的高级用法 217 第10章 I/O重定向 243 第11章 Linux/UNIX Shell类型与区别 273 第12章 子Shell与进程处理 ...

    Linux Shell高级技巧实战总结

    五、将Shell命令赋值给指定变量,以保证脚本的移植性 六、获取当前时间距纪元时间(1970年1月1日)所经过的天数 七、非直接引用变量 八、在循环中使用管道的技巧 九、自链接脚本 十、Here文档的使用技巧 十一、获取...

    shell浅谈之一 变量和引用

    变量是脚本语言的核心,shell脚本又是无类型的。

    Linux常用命令和管理07-shell之脚本编程变量和变量类型1

    ——上一个命令的状态返回值$#——传递给脚本参数的个数$*或$@——引用传递给脚本的所有参数$1+shift(轮替):可引用所有参数,每次shift可以轮替下一

    LINUX与UNIX SHELL编程指南(很全)

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    Linux shell编程指南

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    Linux与unix shell编程指南

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    linux shell 编程教程

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    linux shell常用规则

    shell常用规则 shell特殊字符的引用 系统环境变量 循环语句 多重条件语句 命令组合:圆括号和花括号

    绝版经典《Linux与UNIX Shell编程指南》

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    shell编程基础(linux编程方向)

    • 2 变量赋值和引用 • 3 Shell里的命令 o 3.1 Unix 命令 o 3.2 概念: 管道, 重定向和 backtick • 4 Shell里的流程控制 o 4.1 if 语句 o 4.2 && 和|| 操作符 • 5 case 语句 o 5.1 select 语句 o 5.2 ...

    linux与unix shell编程指南

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    LINUX 与 UNIX SHELL编程指南

    第 14 章 环境和 shell 变量 132 14.1 什么是 shell 变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地 shell 变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否...

    LINUX与UNIX SHELL编程指南

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

Global site tag (gtag.js) - Google Analytics