前言
计划写篇博客,没想好写什么,那这次就把shell的一些基本语法作一个示例说明下。
本文仅是对bash shell的语法说明,仅涉及到变量定义、循环语句、控制语句...等等一些内容,不包含相关shell命令的介绍。另外,关于这些基本语法也不会进行大而全的说明,这算是自己多年来学习的经验,内容过于充实,会很不耐烦看,另外只有部分东西是经常用到的,所以只对常用的进行总结说明,写的太多,看过也不太记的住。
本来想一篇博文把所有写完,现在看来内容并不太少,所以就分多篇,一点一点地写。
本篇就写变量吧。
变量
变量名
变量名的字符只能是数字、字符和下划线。不包含空格、冒号、#号、等号等字符。
变量名大小写敏感。
变量的定义与赋值
一般使用的变量,定义不需要什么关键字(除了只读变量之类使用关键字realonly),定义和赋值在一起(其实在shell中没有变量定义一说),如:name=shell,定义一个变量,变量的值是shell
只读变量
使用readonly定义,变量赋值后不可修改,如下:
变量作用域
1. shell脚本中的变量
仅在当前shell脚本中有用,其它脚本中用不了
2. shell终端变量
当前终端中定义之后直到终端关闭,如上面的只读变量,再开一个终端就用不了
3. 全局环境变量
所有终端和脚本都可用,如配置的环境变量
变量类型
同一变量,可以赋值不同类型,如下:
1 #! /bin/bash
2
3 #string
4 var="this is string"
5 echo $var
6
7 #integer
8 var=123
9 echo $var
10
11 #float
12 var=2.1
13 echo $var
变量的输入
使用read命令,如下:
#! /bin/bash
2
3 read name
4 echo "hello, $name"
执行结果,输入变量,并赋值给name,然后打印出来:
关于read的具体使用,可以查看帮助文档
变量输出
使用echo命令,这个命令也是有很多参数的,可以查看帮助文档
变量的使用
如果要引用一个变量,可以在变量名前加上$符号,如上面的代码或图片中的示例,定义变量name=csdn,使用变量:$name,也可以${name}这样,如果这个变量在一个字符串后面跟有其它符号,另外注意变量在字符串中引用是,这个字符中的单引号与双引号的使用,这两个引号的区别会在后面说明。
#! /bin/bash
welcome="hello"
#变量与后面的字符串有空格
echo "I want to say $name world"
#变量与后面的字符串没有空格,如果不用${}的话,写成$nameworld,变量名就是nameworld
echo "I want to say ${name}world"
输出结果如下图: