Young87

当前位置:首页 >个人收藏

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    引用和替换

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




除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 数据挖掘与数据分析

下一篇: CNN网络中池化层的正向传播与反向传播理解

精华推荐