详解Linux bash变量
2016-12-07 21:25
232 查看
导读 | Linux中编写SHELL脚本必然要接触到变量,本文对bash中不同的变量类型进行一个简要说明 |
Bash变量类型
本地变量
局部变量
环境变量
位置变量
特殊变量(内置)
这里需要注意的是对变量进行赋值时,”=”两边是不能有空白的,否则就会报错。
root@ubuntu:~# LIST='/etc' root@ubuntu:~# echo $LIST /etc root@ubuntu:~# LIST = '/etc' LIST: command not found
本地变量
var_name=value:作用域为整个bash进程可以使用;
变量命名规范:
只能含字母、数字和下划线,并且以字母和下划线开头。
最好不要跟系统已有的环境变量重名。
变量名可充分体现这个变量的作用。
局部变量
声明局部变量使用“local”命令,局部变量作用域只在作用范围内有效。
local var_name=value:作用域为当前代码段
环境变量
作用域为当前shell进程及其子进程,不能影响到其父进程,声明环境变量使用“export”命令。
export var_name=value
,如果变量已经定义可以只是用变量名 export var_name,即可用下面两种方式声明环境变量:
1. export var_name=value
2. var_name=value
export var_name
脚本在执行命令时会启动一个子shell环境变量:
系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量
位置变量
$1,$2,$3,…… cat first.sh test.txt hello $1: first.sh $2: test.txt $3: hello
shift:踢掉参数
shift n:踢掉n个参数,默认踢掉一个参数
这里需要注意的是0为调用该脚本的名字,而参数作为变量的
4000
话第10个变量不能直接写10,而需要写成${10}。
特殊变量
$?:上一个命令执行状态的返回值:
程序执行可能有两种返回值:
1. 程序执行结果
2. 程序状态返回吗(0-255)
0 则为执行正确
1-255 则执行出错(1,2,127系统预留);
可以自定义返回值来获取不同的错误状态。
#:获取当前shell命令行中参数的总个数*:获取当前shell的所有参数 “12 3…,受IFS控制@:这个程序的所有参数 “1''“2″ “3''“…”,不受IFS控制0 获取当前执行的shell脚本的文件名
n获取当前执行的shell脚本的第n个参数值,n=1..9获取当前shell的进程号(PID)! 执行上一个指令的PID
本文转载自:http://www.linuxprobe.com/linux-bash-var.html
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- Linux socket 初步
- android wifi 无线调试
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- ubuntu下chrome无法同步问题解决
- 运维入门