bash shell基本语法之变量的基本使用

1,256 阅读1分钟

前言

本文系列仅是对bash shell的语法说明,仅涉及到变量定义、循环语句、控制语句...等等一些内容,不包含相关shell命令的介绍。

另外,关于这些基本语法也不会进行大而全的说明,这算是自己多年来学习的经验,内容过于充实,会很不耐烦看,另外只有部分东西是经常用到的,所以只对常用的进行总结说明,写的太多,看过也不太记的住。

本文重点是变量部分。

变量

变量名

变量名的字符只能是数字、字符和下划线。不包含空格、冒号、#号、等号等字符。

变量名大小写敏感。

变量的定义与赋值

一般使用的变量,定义不需要什么关键字(除了只读变量之类使用关键字realonly),定义和赋值在一起(其实在shell中没有变量定义一说),如:name=shell,定义一个变量,变量的值是shell

只读变量

使用readonly定义,变量赋值后不可修改,如下:

变量作用域

  1. shell脚本中的变量

仅在当前shell脚本中有用,其它脚本中用不了

  1. shell终端变量

当前终端中定义之后直到终端关闭,如上面的只读变量,再开一个终端就用不了

  1. 全局环境变量

所有终端和脚本都可用,如配置的环境变量

变量类型

同一变量,可以赋值不同类型,如下:

 #! /bin/bash
 
 #string
 var="this is string"
 echo $var
  
 #integer
 var=123
 echo $var
  
 #float
 var=2.1
 echo $var

变量的输入

使用read命令,如下:

#! /bin/bash
 
read name
echo "hello, $name"

执行结果,输入变量,并赋值给name,然后打印出来:

关于read的具体使用,可以查看帮助文档

变量输出

使用echo命令,这个命令也是有很多参数的,可以查看帮助文档

变量的使用

如果要引用一个变量,可以在变量名前加上符号,如上面的代码或图片中的示例,定义变量name=csdn,使用变量:符号,如上面的代码或图片中的示例,定义变量name=csdn,使用变量:name,也可以${name}这样,如果这个变量在一个字符串后面跟有其它符号,另外注意变量在字符串中引用是,这个字符中的单引号与双引号的使用,这两个引号的区别会在后面说明。

#! /bin/bash
welcome="hello"
#变量与后面的字符串有空格
echo "I want to say $name world"
#变量与后面的字符串没有空格,如果不用${}的话,写成$nameworld,变量名就是nameworld
echo "I want to say ${name}world"

输出结果如下图: