变量+shell变量(1)

来源:互联网 发布:保利地产工资待遇知乎 编辑:程序博客网 时间:2024/06/06 02:24


变量类型:运行Shell时,会同时存在三种变量
a):局部变量
在脚本或命令中定义,仅在当前Shell实例中有效,其他Shell启动的程序不能访问局部变量。


b):环境变量
所有的程序,包括Shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要时Shell脚本也可以定义环境变量。


c):Shell变量
Shell变量是由Shell程序设置的特殊变量。Shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了Shell的正常运行。






Shell 支持自定义变量

定义变量时,变量名不加 $ ,遵循规则如下:
1.首个字符必须为字母(a-z,A-Z)
2.中间不能有空格,可以使用下划线(_)
3.不能使用标点符号
4.不能使用bash里面的关键字。










变量的设置规则:
1.变量与变量内容以一个 “=” 连接
2.等号两边不能直接接空格符。
3.变量内容若有空格符可使用双引号或单引号将内容结合起来,
双引号内的特殊字符如 $ 等,可以保持原本的特性。
单引号内的特殊符号则仅为一般字符(纯文本)。
4.可用转义字符“\”将特殊字符(如$ \ 空格 回车 !等)变成一般字符。
5.在一串命令中,还需要通过其他命令提供的信息,可以使用反单引号“`命令`”或 “$ (命令)”,例如想要取得内核版本的设置:
“version=$ (uname-r)”  再 "echo $version" 可得“2.6.18-128.el5”
6.若该变量为了增加变量内容时,则可用“$变量名称”或 ${变量名称} 累加内容。如:PATH="$PATH":/home/bin
7.若该变量需要在其他子程序中执行,则需要以  export 来使变量变成环境变量  在我目前这个Shell的情况下,去打开另一个新的Shell,新的Shell 就是子进程。
8.通常大写字符为系统默认变量,自行设置变量使用小写字符,方便判断。








显示变量:echo $变量名


取消变量:unset 变量名


重新定义变量:已定义的变量可以被重新定义


只读变量:readonly 变量名  只读变量的名不能被改变


使用变量:
使用一个已经被定义的变量,只要在变量名前加 $ 即可,
如: your_name="Tanswer" 
echo ${your_name}
echo $your_name
  花括号是可选的,加花括号是为了帮助解释器识别变量的边界。推荐给所有变量都加




Shell 特殊变量

1.$$ :表示当前Shell进程的ID,即pid。
语法:echo $$
2.$0 :当前脚本的文件名
3.$n :传递给脚本或函数的参数,n是一个数字,表示第几个参数。
4.$# :传递给函数或脚本参数的个数
5.$* :传递给函数或脚本的所有参数
6.$? :上个命令的退出状态,或函数的返回值
7.$@ :传递给函数或脚本的所有参数。


注:$*与$@的区别:
不被双引号包含时,都以"$1""$2"..."$n"的形式输出所有参数

被双引号包含时,$* 会将所有的参数作为一个整体,以"$1 $2...$n"的形式输出所有参数;而$@ 会将各个参数分开,  以"$1""$2"..."$n"的形式输出所有参数。







1 0
原创粉丝点击