二、我也来抄shell之ABS--变量和参数介绍
2012-02-12 22:02
337 查看
为了加深自己的影响,所以抄了一边,具体请看ABS_Guide_cn.pdf
4.1 变量替换
"$" 变量替换操作符
只有在变量被声明,赋值,unset 或 exported 或者是在变量代表一个 signal 的时候,变量才会是以本来的面目出现在脚本里.变量在被赋值的时候,可能需要使用"=",read 状态或者是在循环的头部.在""中还是会发生变量替换,这被叫做部分引用,或叫弱引用.而在''中就不会发生变量替换,这叫做全引用,也叫强引用.注意:$var 与${var}的区别,不加{},在某些上下文将引起错误,为了安全,使用 2.
4.2 变量赋值
"=" 赋值操作符(前后都不能有空白)
不要与-eq 混淆,那个是 test,并不是赋值
4.3 Bash 变量是不分类型的
不像其他程序语言一样,Bash 并不对变量区分"类型".本质上,Bash 变量都是字符串.但是依赖于上下文,Bash 也允许比较操作和算术操作.决定这些的关键因素就是,变量中的值是否只有数字.
4.4 特殊的变量类型
"local variables: 这种变量只有在代码块或者是函数中才可见(具体见 23.2 和 23 章)
"environmental variables" 这种变量将改变用户接口和 shell 的行为.
在一般的上下文中,每个进程都有自己的环境,就是一组保持进程可能引用的信息的变量.这种情况下,shell 于一个一般进程是相同的.每次当 shell 启动时,它都将创建自己的环境变量.更新或者添加新的环境变量,将导致 shell 更新它的环境,同时也会影响所有继承自这个环境的所有子进程(由这个命令导致的).
注意:分配给环境变量的空间是受限的.创建太多的环境变量将引起空间溢出,这会引起问题.
bash$ eval "`seq 10000 | sed -e 's/.*/export var&=ZZZZZZZZZZZZZZ/'`"
bash$ du
bash: /usr/bin/du: Argument list too long
如果一个脚本设置了环境变量,需要 export 它,来通知本脚本的环境,这是 export命令的功能,关于 export 命令,具体见 11 章.
脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本 export 的变量,将不能影响调用这个脚本的那个命令行 shell 的环境.
"positional parameters: 就是从命令行中传进来的参数,$0, $1, $2, $3...$0 就是脚本文件的名字,$1 是第一个参数,$2 为第 2 个...,参见[1](有$0 的说明),$9以后就需要打括号了,如${10},${11},${12}...两个值得注意的变量$*和$@(第 9 章有具体的描述),表示所有的位置参数.
4.1 变量替换
"$" 变量替换操作符
只有在变量被声明,赋值,unset 或 exported 或者是在变量代表一个 signal 的时候,变量才会是以本来的面目出现在脚本里.变量在被赋值的时候,可能需要使用"=",read 状态或者是在循环的头部.在""中还是会发生变量替换,这被叫做部分引用,或叫弱引用.而在''中就不会发生变量替换,这叫做全引用,也叫强引用.注意:$var 与${var}的区别,不加{},在某些上下文将引起错误,为了安全,使用 2.
4.2 变量赋值
"=" 赋值操作符(前后都不能有空白)
不要与-eq 混淆,那个是 test,并不是赋值
4.3 Bash 变量是不分类型的
不像其他程序语言一样,Bash 并不对变量区分"类型".本质上,Bash 变量都是字符串.但是依赖于上下文,Bash 也允许比较操作和算术操作.决定这些的关键因素就是,变量中的值是否只有数字.
4.4 特殊的变量类型
"local variables: 这种变量只有在代码块或者是函数中才可见(具体见 23.2 和 23 章)
"environmental variables" 这种变量将改变用户接口和 shell 的行为.
在一般的上下文中,每个进程都有自己的环境,就是一组保持进程可能引用的信息的变量.这种情况下,shell 于一个一般进程是相同的.每次当 shell 启动时,它都将创建自己的环境变量.更新或者添加新的环境变量,将导致 shell 更新它的环境,同时也会影响所有继承自这个环境的所有子进程(由这个命令导致的).
注意:分配给环境变量的空间是受限的.创建太多的环境变量将引起空间溢出,这会引起问题.
bash$ eval "`seq 10000 | sed -e 's/.*/export var&=ZZZZZZZZZZZZZZ/'`"
bash$ du
bash: /usr/bin/du: Argument list too long
如果一个脚本设置了环境变量,需要 export 它,来通知本脚本的环境,这是 export命令的功能,关于 export 命令,具体见 11 章.
脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本 export 的变量,将不能影响调用这个脚本的那个命令行 shell 的环境.
"positional parameters: 就是从命令行中传进来的参数,$0, $1, $2, $3...$0 就是脚本文件的名字,$1 是第一个参数,$2 为第 2 个...,参见[1](有$0 的说明),$9以后就需要打括号了,如${10},${11},${12}...两个值得注意的变量$*和$@(第 9 章有具体的描述),表示所有的位置参数.
相关文章推荐
- shell 变量(变量的介绍和参数置换)
- Shell变量和参数的介绍
- shell脚本介绍-脚本结构和执行-date命令用法-脚本中的变量
- shell中的条件判断、参数以及变量替换
- shell判断输入变量或者参数是否为空
- 变量赋值变量和参数的介绍
- 04 变量和参数介绍
- 【shell点滴】参数变量
- LINUX BASH SHELL位置变量与特殊变量参数
- 脚本乐园 shell 自定义函数(定义、返回值、变量作用域)介绍
- shell中的条件判断、参数以及变量替换
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
- 【shell点滴】参数变量
- Shell脚本中判断输入变量或者参数是否为空的方法
- shell判断输入变量或者参数是否为空
- shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量
- shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量
- linux的shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
- 深入浅出Shell编程 Shell变量介绍