详解Linux bash变量
来源:互联网 发布:mac怎么玩守望先锋 编辑:程序博客网 时间:2024/05/08 01:44
导读Linux中编写SHELL脚本必然要接触到变量,本文对bash中不同的变量类型进行一个简要说明
- 本地变量
- 局部变量
- 环境变量
- 位置变量
- 特殊变量(内置)
这里需要注意的是对变量进行赋值时,"="两边是不能有空白的,否则就会报错。
root@ubuntu:~# LIST='/etc'root@ubuntu:~# echo $LIST/etcroot@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为调用该脚本的名字,而参数作为变量的话第10个变量不能直接写$10,而需要写成${10}。
$?:上一个命令执行状态的返回值:
程序执行可能有两种返回值:
1. 程序执行结果
2. 程序状态返回吗(0-255)
0 则为执行正确
1-255 则执行出错(1,2,127系统预留);
可以自定义返回值来获取不同的错误状态。
$#:获取当前shell命令行中参数的总个数
$*:获取当前shell的所有参数 “$1 $2 $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/thread
- 详解Linux bash变量
- 详解Linux bash变量
- 详解Linux bash变量
- 详解Linux bash中的变量
- bash变量详解
- Linux bash 变量
- linux:bash变量:declare
- Linux的Bash变量
- Linux Bash 变量操作
- Linux Shell Bash 变量赋值
- Linux Shell基础-Bash变量
- 关于Linux bash 中的变量
- bash变量位置参数变量预定义变量环境变量详解
- BASH中关于变量内替换详解
- linux笔记-bash特性详解
- linux bash文件中变量指定方式
- Linux 编程之Bash中的变量
- linux shell bash 内置变量参考
- MyEclipse使用Maven
- Python 学习笔记 多进程 multiprocessing
- [Debug之路]MFC遇到的问题记录
- scala.Predef
- Intent对象练习1---返回系统桌面
- 详解Linux bash变量
- svn安装脚本
- Java:String 字符串的替换函数 replace replaceAll replaceFirst
- 快速排序-递归与分治
- cocos ,cocos studio ,cocos creater的简单介绍
- dbms_transaction包
- Spring MVC和Struts2的比较
- 稳定性治理
- Linux目录结构