shell编程——变量和引用
日期: 2018-05-26 分类: 个人收藏 389次阅读
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 引用和替换
转义:转义使用反斜线表示,当反斜线后面的一个字符具有特殊的意义时,反斜线将屏蔽该字符的特殊意义。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
上一篇: 数据挖掘与数据分析
精华推荐