博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
变量+shell变量(1)
阅读量:4184 次
发布时间:2019-05-26

本文共 1353 字,大约阅读时间需要 4 分钟。

变量类型:运行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"的形式输出所有参数。

你可能感兴趣的文章
Flume单Channel多Sink配置
查看>>
flume 的source 、channel和sink 多种组合
查看>>
从源头入手,一分钟秒懂为什么要搞微服务架构?
查看>>
TCP连接状态详解及TIME_WAIT过多的解决方法
查看>>
CPU 硬盘性能到底相差多少
查看>>
B树、B+树、B*树 总结
查看>>
kafka常用命令
查看>>
kafka顺序消息
查看>>
Kafka:Producer Config 配置
查看>>
Kafka:(Consumer配置)
查看>>
kafka 消息服务
查看>>
从零开始玩转JMX(一)——简介和Standard MBean
查看>>
究竟啥才是互联网架构中的高并发!
查看>>
数据库水平扩展与垂直扩展
查看>>
异地多活问题
查看>>
Http_load测试说明
查看>>
nginx优化——包括https、keepalive等
查看>>
记一次压力测试和对nginx/tomcat配置的调整
查看>>
第二章 HttpClient 连接管理
查看>>
tcpdump抓包分析TCP三次握手过程
查看>>