(本篇主要参考了:www.runoob.com,及自己实测的一些结果)
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
Linux 的 Shell 种类众多,常见的有:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
- ……
Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
第一个Shell脚本
打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。
第一行#!/bin/bash是一个约定的标记,表示告诉系统这个脚本需要bash解释器来执行;
第二行echo命令用于向窗口输出文本“hello world!”
运行Shell脚本有两种方法:
1、作为可执行程序
将上面代码保存为test.sh,并cd到相应目录中:
第一行chmod +x test.sh表示给test.sh文件新增可执行权限;
第二行./test.sh表示执行test.sh文件。(为什么需要加[./]来执行自己编写的shell程序,目前只 要知道如果不加[./],那么系统会依次去alias->内置命令->PATH查找test.sh,而不是在当前路径 下查找)
2、作为解释器参数(用得少)
这种运行方式是,直接运行解释器,其参数就是Shell脚本得文件名,如:
上图中能看到,这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用