linux之Shell编程(2)--Shell变量实例演示

一.Shell变量定义

Shell在定义变量时通常不需要指明类型,直接赋值就可以。Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

默认情况下,Shell不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串。

Shell 支持以下三种定义变量的方式:

variable=value
variable=‘value’
variable="value"

variable 是变量名,value 是赋给变量的值

注意:
1.如果 value 不包含任何空白符(例如空格、Tab 缩进等),那么可以不使用引号。
2.如果 value 包含了空白符,那么就必须使用引号包围起来。
3.赋值号=的周围不能有空格。

二.Shell变量实例演示

在Desktop目录中的myfile文件夹里创建了bianliang.sh,文件内容为以下图片。
linux之Shell编程(2)--Shell变量实例演示_第1张图片
可以发现使用了三种定义变量的方式,都可以得到想要的值。
在Terminal中运行该文件后结果如下:
在这里插入图片描述

注意:
使用一个定义过的变量,只要在变量名前面加美元符号$
变量名外面的花括号{}是可选的,建议把所有的变量加上{},在特殊情况下,如果不加{},那么编译器会把它当成字符串,而不是变量,如下演示。

linux之Shell编程(2)--Shell变量实例演示_第2张图片
运行结果:
在这里插入图片描述
可以发现,加上{}可以避免编译器识别错误的变量。

三.修改变量值

修改变量的值,只要重新赋值即可。
linux之Shell编程(2)--Shell变量实例演示_第3张图片
运行结果:
在这里插入图片描述

四.单引号’'和双引号""的区别

1.以单引号’ ‘包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令,也会把它们原样输出。’'比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

2.以双引号" "包围变量的值时,输出时会先解析里面的变量命令,而不是把双引号中的变量名和命令直接输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。
ex:
linux之Shell编程(2)--Shell变量实例演示_第4张图片
结果:
在这里插入图片描述

如何选择呢?
如果只想单纯地输出字符串,可以选择单引号。
如果需要输出含有变量的字符串,那么加上双引号。
如果只有数字输出,可以不加单引号或者双引号。

五.将命令结果复制给变量

可以给变量赋值普通字符串,也可以将执行结果赋值给变量。
可以使用两种方式
variable=`command`
variable=$(command)

第一个方法是反引号,键盘1左边的字符,需要和单引号区分

在这里插入图片描述

在这里插入图片描述

六.只读变量和删除变量

只读变量定义后,不能修改变量的值,删除变量后,无法再使用该变量,如果使用,输出为空。
linux之Shell编程(2)--Shell变量实例演示_第5张图片
结果:
在这里插入图片描述

你可能感兴趣的:(Shell,字符串,linux,shell)