shell---变量与引用

1.shell是动态、弱类型语言
2.shell中变量不分数据类型,统一按字符串存储
3.运行shell时,程序中同时会存在四种变量:局部变量、全局变量、环境变量、系统变量

变量的类型

变量类型确定时间
  1.静态类型语言  在程序编译期间确定变量类型的语言。
  2.动态类型语言  在程序执行过程中才确定变量的数据类型的语言
是否强制要求类型定义
  1.强类型语言
  2.弱类型语言

shell变量的命名规则

变量名的命名须遵循如下规则: 
1.数字、字母、下划线组成;数字不能开头
2.中间不能有空格
3.不能使用标点符号
4.不能使用bash里的关键字(可用help命令查看保留关键字)
5。Shell中变量名大小写敏感

shell中的三种引号

==双引号中 $ \ ’ " 四种字符有特殊意义 ==

单引号  单引号括起来的字符均表现为普通字符。
双引号  双引号括起来的字符均表现为普通字符,除了 $ \ ' " 这四个字符有特殊意义。
反引号  反引号括起来的字符被shell解释为命令并执行,以其结果取代整体。

定义变量

注意:定义变量时,变量名和等号之间不能有空格

方法一:直接定义并使用
value_name='matthew' #直接定义了变量value_name 其值为 'matthew'

方法二:使用declare或者typeset定义
为了更好控制相关属性bash提供了declare命令(typeset)
格式:declare attribute variable
-p 显示所有变量的值
-i 定义变量为整数
-r 设置为只读
-a 设置为数组
-f 显示所有自定义函数(函数名+函数体)
-x 设置为环境变量

例如:declare -r value_name='matthew'  #定义了一个只读变量 value_name其值为'matthew'

方法三:只读变量定义
使用 readonly 命令将变量定义为只读变量,只读变量的值不能被改变
myUrl="http://www.google.com"
readonly myUrl

使用变量

推荐使用时用{}把变量括起来

语法格式:${var}
1.只要在变量名前面加美元符号即可
2.变量名外面的花括号是可选的,加花括号是为了帮助解释器识别变量的边界

删除变量

语法格式:unset variable_name
1.变量被删除后不能再次使用。
2.unset 命令不能删除只读变量。

变量的作用域(使用范围)

注意:函数内部的局部变量会屏蔽同名全局变量。就近原则
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量

全局变量
  1.脚本中定义的变量
  2.函数中定义的变量

局部变量
  1.函数的参数是局部变量。
  2.函数内部通过local关键字定义局部变量

系统变量

shell语言系统变量主要在对参数判断和命令返回值判断时使用。
$n 	n从1开始;表示参数位置
$# 	命令行参数个数
$0 	当前shell脚本的名称
$? 	前一个命令或者函数的返回状态码
$* 	返回所有参数 一个字符串形式 "var1 var2 var3 ..."
$@ 	返回所有参数  多个字符串形式 "var1" "var2" ...
$$ 	返回本进程的进程ID

环境变量

1.所有的程序,包括shell启动的程序,都能访问环境变量。必要的时候shell脚本也可以定义环境变量
2.使用env命令可以直接查看所有的环境变量

Shell程序运行时都会默认接收一组变量,即环境变量。
PATH   		命令搜索路径以:分割
HOME   		用户主目录路径名
COLUMNS  	定义了命令编辑模式下可使用命令行的长度
HISTFILE  	命令历史文件
HISTSIZE  	命令历史文件最多可包含的条数
HISTFILESIZE 	命令历史文件包含的最大行数
SHELL   	shell的全路径名
PWD   		当前工作目录
LOGNAME  	当前登录名
IFS   		定义shell使用的分隔符
TERM   		终端类型
TMOUT   	shell自动退出时间,单位秒,若设置为0则禁止shell自动退出

自我学习总结,路过大牛请多多指导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值