前言
本文系列仅是对bash shell的语法说明,仅涉及到变量定义、循环语句、控制语句...等等一些内容,不包含相关shell命令的介绍。
另外,关于这些基本语法也不会进行大而全的说明,这算是自己多年来学习的经验,内容过于充实,会很不耐烦看,另外只有部分东西是经常用到的,所以只对常用的进行总结说明,写的太多,看过也不太记的住。
本文重点是变量部分。
变量
变量名
变量名的字符只能是数字、字符和下划线。不包含空格、冒号、#号、等号等字符。
变量名大小写敏感。
变量的定义与赋值
一般使用的变量,定义不需要什么关键字(除了只读变量之类使用关键字realonly),定义和赋值在一起(其实在shell中没有变量定义一说),如:name=shell,定义一个变量,变量的值是shell
只读变量
使用readonly定义,变量赋值后不可修改,如下:
变量作用域
- shell脚本中的变量
仅在当前shell脚本中有用,其它脚本中用不了
- shell终端变量
当前终端中定义之后直到终端关闭,如上面的只读变量,再开一个终端就用不了
- 全局环境变量
所有终端和脚本都可用,如配置的环境变量
变量类型
同一变量,可以赋值不同类型,如下:
#! /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,也可以${name}这样,如果这个变量在一个字符串后面跟有其它符号,另外注意变量在字符串中引用是,这个字符中的单引号与双引号的使用,这两个引号的区别会在后面说明。
#! /bin/bash
welcome="hello"
#变量与后面的字符串有空格
echo "I want to say $name world"
#变量与后面的字符串没有空格,如果不用${}的话,写成$nameworld,变量名就是nameworld
echo "I want to say ${name}world"
输出结果如下图: