每天Coding一小时,少活.....额!健康工作50年!接下来我们一起来学习一下Linux中的Shell编程的知识,希望大家一起进步。加油!!!
首先我们来讲解一下Shell编程的基础知识,来看一下变量。我们知道在任何的编程语言中变量都是最基础的使用。我们在写程序的过程中一定要使用到变量,那么这些变量可以代表某些逻辑运算后的值,我们也可以对变量做一些常规定义,比如定义为一个字符串,或者定义为某个特定值,唯一不同的是,在我们的高级编程语言比如Java或是C语言中,我们的变量是一个强类型的,这意味着当我们的变量在Java语言中定义的时候,只要我们给它赋值之后,这个变量的数据类型、格式就已经定义了,比如定义一个整数型或是字符串等等。但是在我们的Shell编程中的变量是一个弱类型的,因为Shell是一个解释性的语言,它带有解释器,只有当解释器在我们的环境中执行的时候,执行到具体变量的时候它才会给变量生成值,而且这个变量是弱类型的,它是在数据分配的时候才决定变量的具体类型是什么样的。那我们来看一下在Shell中定义变量的基本原则。
定义变量的基本原则
- 变量是由任何字母、数字和下划线组成的字符串,且不能以数字开头。
- 区分字母大小写,例如Var1和var1是不同的
- 变量、等号、值中间不能出现任何空格
变量的引用
- var1=hello
- echo $var1
比如我们现在定义了一个var1的变量,我们可以用$var1来应用定义的变量var1。我们直接 echo $var1 ,那么在屏幕上会输出 hello。
当然,我们定义变量的时候也可以将它定义为一个数字,比如:
但是我们可以看到这时我们输出var2和var3相加的时候,它会作为字符串输出,并不会作为数字。因为我们的Shell它并不是一个强类型的语言。虽然在上面定义的是数值,但是在下面输出的时候都会作为字符串来处理。那它如何作为数学运算,会在后面讲到。
如果我们以数字开头定义变量会怎么样呢?
会看到会直接报错的。
接下来我们定义var1和Var1两个区分大小写的变量。
我们可以看到当我们输出var1时打印出的是小强,当我们输出Var1时打印的是旺财。所以说shell是严格区分大小写的。
当我们定义一个变量的时候,如果后面有空格的话会怎么样呢?
会看到,这样会报错,这一点不同于我们的高级语言,我们在高级语言中是允许这样的写法。同样的,如果变量和等号之间没有空格,但是等号和值之间有空格也会报错。所以变量、等号和值间不能有任何空格,必须连着写。
我们可以写一个简单的脚本。使用vim test.sh命令。进入到test.sh文件中按“i”可以切换到编辑模式,然后编辑完之后敲“:wq!”,表示保存并退出。
在脚本中通常第一句话我们都会这样写:
#!/bin/bash,意味着我这个脚本中所写的内容都是用bin/bash来解释的。当我们定义的变量值存在空格时要用单引号或双引号引起来。当变量值中存在单引号,那么就要用双引号将变量值引起来。
执行sh test.sh
这些就是变量的定义以及一些用法。如果各位有补充请留言,我验证之后完善文章。谢谢!