1、新建第一个.sh文件
#!/bin/bash
# Copyright (c) http://www.baidu.com/
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
第 1 行的#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell;后面的/bin/bash就是指明了解释器的具体位置。
第 2 行的#及其后面的内容是注释。Shell 脚本中所有以#开头的都是注释(当然以#!开头的除外)
echo用来打印内容到控制台
read用来获取键盘输入内容
echo "Hello, $PERSON" 表示输出变量 PERSON 的内容。注意在变量名前边要加上$
,否则变量名会作为字符串的一部分处理
2、执行shell脚本
运行 Shell 脚本有两种方法,一种在新进程中运行,一种是在当前 Shell 进程中运行
在新进程中运行 Shell 脚本有多种方法。
2.1、在新进程中运行shell脚本
2.1.1、将 Shell 脚本作为程序运行
Shell 脚本也是一种解释执行的程序,可以在终端直接调用(需要使用 chmod 命令给 Shell 脚本加上执行权限),如下所示:
通过这种方式运行脚本,脚本文件第一行的#!/bin/bash
一定要写对,好让系统查找到正确的解释器
2.1.2、 将 Shell 脚本作为参数传递给 Bash 解释器
也可以直接运行 Bash 解释器,将脚本文件的名字作为参数传递给 Bash,如下所示:
通过这种方式运行脚本,不需要在脚本文件的第一行指定解释器信息,写了也没用。
检测是否开启了新进程
Linux 中的每一个进程都有一个唯一的 ID,称为 PID,使用$$
变量就可以获取当前进程的 PID。$$
是 Shell 中的特殊变量
2.2、在当前进程中运行 Shell 脚本
这里需要引入一个新的命令——source 命令。source 是 Shell 内置命令的一种,它会读取脚本文件中的代码,并依次执行所有语句。你也可以理解为,source 命令会强制执行脚本文件中的全部命令,而忽略脚本文件的权限。
source命令的用法为:source filename,也可以简写为. filename(.和文件名之间有个空格)
使用 source 命令不用给脚本增加执行权限,并且写不写./
都行
总结:如果需要在新进程中运行 Shell 脚本,一般使用bash test.sh
这种写法;如果在当前进程中运行 Shell 脚本,一般使用. ./test.sh
这种写法。