从这篇博客开始,我们将进入Linux的shell脚本的学习,这对于Linux学习爱好者而言是特别重要的一节,也是特别有意思的一节,shell 脚本就像我们知道的Java,php类似的编程语言一样,通过shell脚本,我们能完成很多有意思的应用程序。在学习中找到乐趣,这也是最重要的。
本篇博客我们先给大家介绍一下什么是shell,以及bash的基本功能。
和大家通常说的shell是一门编程语言的说法其实是不完全正确的。
①、shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 shell 来启动、挂起、停止甚至是编写一些程序。
比如,我们现在操作的界面就是shell,我们输入一些命令,通过shell 去翻译为机器语言,然后由硬件去执行这些命令。
②、shell 是一个功能很强大的编程语言,它易编写、易调试,而且灵活性强。shell 是解释执行的脚本语言,在 shell 中可以直接调用 Linux 系统命令。
其实windows类似于shell的就是它的图形交互界面,我们在windows系统中打开文件,删除文件等操作,就是向windows系统发送命令。
我们可以在shell解释器中直接输入shell名称进行切换
这个命令如果学过Java的类似于 System.out.println(),如果学过C语言的类似于 printf(),在shell 当中语法形式如下:
echo 【选项】【输出内容】
-e 表示支持反斜杠控制的字符转换,也就是转义字符。
范例:
首先我们编写一个shell 脚本。通过 vi hello.sh,打开 hello.sh 文件,然后在文件中添加如下内容:
①、我们说Linux系统是不区分文件后缀名的,这里我们学习的是 bash,所以创建文件 hello.sh,后缀名最好加上.sh(虽然不加也没问题),便于我们识别。
②、脚本的第一行 #!,这是一个约定的标记,它告诉系统这个脚本需要用什么解释器去执行,即使用哪一种 shell,所以学习 bash,第一行固定都是 #!/bin/bash。这是不能省略的。
创建完毕之后,接下来执行该脚本,有如下两种方式:
cd /tmp #进入到脚本所在的目录
chmod +x ./hello.sh #使得脚本具有可执行权限
./hello.sh #执行脚本
注意,一定要写成 ./hello.sh,而不是 hello.sh,运行其它二进制的程序也一样,直接写 hello.sh,linux 系统会去 PATH 里寻找有没有叫 hello.sh 的(这是后面会讲的环境变量的配置),而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 hello.sh 是会找不到命令的,要用 ./hello.sh 告诉系统说,就在当前目录找。
也就是直接运行解释器,其参数就是 shell 脚本的文件名,如下:
/bin/sh hello.sh
或者
bash hello.sh
注意:这种方式执行脚本,并不需要第一行写上 #!/bin/bash。