基本数据类型
shell语言是一门弱类型语言,无论输入的是字符串还是数字,shell都是按照字符串类型来进行存储的,具体属于什么数据类型,shell会根据上下文进行确定
变量的使用
上面提到过,shell是一门弱类型的语言,所以变量可以不用定义就直接用,有如下几种引用方式
- 直接用
$
引用
word = 'my shell'
echo $word
//结果输出 my shell
- 使用
${}
引用
word = 'my shell'
echo ${word}
//结果输出 my shell
使用小建议
原则上来说,使用第一种和第二种都是可以的,在简单的场景下区别不大,但是在较为复杂的环境下,第二种会比第一种更易于阅读和理解,而且很多公司内部使用shell的时候,都采用第二种引用方式,因此推荐第二种写法
打印字符
打印字符主要有2条命令,下面会对这两条命令进行分析
echo命令
- 直接输出
说明:
直接输出echo后面的字符串
格式:
echo 内容
示例:
echo I'm a student
//结果输出I'm a student
缺点:无法识别; 如果echo 后面的内容包含分号,程序会认为代码结束,换下一行
- 单引号引用
说明:
直接输出echo后面的单引号内的字符串
格式:
echo '内容'
示例:
echo I'm a 'student'
//结果输出I'm a student
缺点:无法识别变量,会直接输出变量名,而不会输出变量值
- 双引号引用
说明:
直接输出echo后面的双引号内的字符串和变量
格式:
echo '内容'
示例:
role = student
echo "I'm a ${role}"
//结果输出I'm a student
缺点:无法识别变量,会直接输出变量名,而不会输出变量值
printf命令
printf可以格式化打印字符串,方便阅读,其实这个命令和c语言中的printf使用时很类似的,格式如下
printf "打印此 %s 的内容 " 占位符
//结果会输出:打印此 占位符 的内容
占位符有如下4种格式
- s:string字符串
- d:decimal整数
- c:char字符
- f:float浮点数
数学运算
以加法运算为例,主要有以下三种方式进行运算
- expr方式
#!bin/bash
a = `expr 1 + 2`
echo $a
//结果输出:3
//注意`是键盘左上方数字键1左边那个符号,不是单引号
- let方式
#!bin/bash
let a=1+2
echo $a
//结果输出:3
- (())方式
#!bin/bash
((a = 1 + 2))
echo $a
//结果输出:3
错误示范:
#!/bin/bash
a=1+2
echo $a
//结果输出:1+2