shell变量的赋值

shell变量的赋值方式有五种:直接联系、从键盘读入赋值、使用命令行参数进行赋值、利用命令的输出结果进行赋值和文件中读入数据赋值。

1.直接赋值
在shell中,第一次使用某个变量名时,实际上就已经给变量赋值了。直接赋值的格式为“变量名=变量值”。
注意
直接赋值时禁止在等号两端添加空格。如下图示一个简单的直接赋值:
shell变量的赋值

2.从键盘读入赋值
从键盘读入赋值的命令格式为:read -p [提示信息]:[变量名]
read命令被用来从标准输入读取单行数据。
示例:
shell变量的赋值
结果:
shell变量的赋值
从以上结果可以看出,read命令从标准输入中读取一行,并把输入行的每个字段的值(这里的值是10.9.27.100)赋值给shell变量$ip。
3.使用命令行参数赋值
使用命令行参数赋值是直接在命令后面跟参数,系统用$1来调用第一个参数,使用$2来调用第二个参数。
注意
这种赋值方式适用于参数经常变化且不需要交互的情况。
示例:
shell变量的赋值
结果:
shell变量的赋值
从上可以看出,测试脚本的内容是显示第一个参数$1和第二个参数$2。
4.利用命令的输出结果赋值
在shell程序中,可以将一个命令的输出结果当作变量的值。
注意
在赋值语句中使用反向单引号。
示例:
shell变量的赋值
设置当前日期(格式为2021-03-26)赋值给a变量,也就是说将date + %F命令的输出结果赋值给a,然后用echo $a显示出来。
5.从文件中读入数据赋值
这种方式适用于处理大批量的数据,直接把相应的数据写入文件中。这种方式通常是while循环一行行读入数据,即每循环一次,就从文件中读入一行数据,知道文件的结尾。
示例:
shell变量的赋值
结果:
shell变量的赋值
从以上代码中我们可以看出,文件2.sh的内容通过while循环被读入到脚本中,并且每一行数据都赋值给了execfile,之后用echo显示出来,这里文件的内容读取使用了while的输入从定向。
在shell中,定义或者引用变量应该注意一些问题,如:单引号、双引号、反引号(``)的使用,使用单引号时,不管引号里面是否有变量或者其他表达式,都是原样输出;如果使用双引号,则引号里面的变量或函数会先解析再输出;反引号的作用是命令调用,反引号等价于$()。
使用双引号显示结果,示例:
shell变量的赋值
使用单引号显示结果如下:
shell变量的赋值
使用反引号输出结果如下:
shell变量的赋值
等价于:
shell变量的赋值

shell变量的赋值

上一篇:阻塞 非阻塞 进程等待 wait waitpid


下一篇:shell变量的运算