shell编程——变量和引用

1    在shell中,通常情况下用户可以直接使用变量,无需先进行定义,当用户第一次    使用某个变量时,实际上就同时定义了这个变量,在变量的作用域内,用户都可以使用该变量。

在shell语言中,如果变量的值包含空格,则一定要使用引号引用起来。

为了更好地控制变量的相关属性,bash提供了一种名称为declare的命令来声明:

declare attribute variable

attribute:

-i    将变量定义为整数,如果求值失败或者不是整数,就设置为0

-r    将变量设置为只读变量,只读变量不允许修改,也不允许删除。

-x    将变量设置成环境变量,这样在随后的脚本和程序中可以使用。

2    变量和引号

单引号 双引号 反引号:

其中单引号括起来的字符都作为普通字符出现,

双引号括起来的字符,除“$” "\" “'” “`” 这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待

由反引号括起来的字符被shell解释为命令,在执行时,shell首先执行该命令,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。

命令替换:`shell_command`等价于$(shell_command)

3    全局变量、局部变量、系统变量

全局变量:在脚本中定义的变量都是全局变量,不仅可以在脚本中直接使用,而且还可以在函数内部直接使用。其作用域为从被定义的地方开始,一直到shell脚本结束或者被显式地删除。

默认情况下,函数内部定义的变量也属于全局变量。

局部变量:通过local关键字定义局部变量,另外,函数的参数也是局部变量。函数内部的局部变量会屏蔽函数外部的全局变量,即:在出现同名的情况下,函数内部的局部变量会优先被使用。 

系统变量:

$n    第n个参数

$#    命令行参数的个数

$0    当前shell脚本的名称

$?    前一个命令或者函数的返回状态码

$*   $@    将所有的参数通过特定形式返回

4    变量赋值 

variable_name=value

如果value中包含空格、制表符和换行符,则必须要用单引号或者双引号将其引起来。双引号内允许变量替换,而单引号则不可以。

中间的“=”称为赋值符号,赋值符号的左右两边不能直接跟空格,否则shell会将其视为命令。

5    清除变量

使用unset语句

unset variable_name

清楚掉以后输出空值

6    引用和替换

转义:转义使用反斜线表示,当反斜线后面的一个字符具有特殊的意义时,反斜线将屏蔽该字符的特殊意义。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值