Shell环境和变量生存期
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。例如Bash(Bourne Again Shell, 是大多数Linux系统默认的Shell,在/usr/bin下。)。Shell脚本(shell script),是一种为Shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但要知道,shell和shell script是两个不同的概念。
1 第一个shell脚本
#!/bin/bash
echo "Hello World !"
#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
2 运行Shell脚本有两种方法:
-
- 作为可执行程序
将上面的代码保存为test.sh, 并cd到相应目录:
- 作为可执行程序
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
-
- 作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
- 作为解释器参数
/bin/sh test.sh
3 Shell输入输出重定向
大多数UNIX系统命令从你的终端接受输入并将所产生的输出发送回到你的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
需要注意的是文件描述符0通常是标准输入(STDIN),1是标准输出(STDOUT),2是标准错误输出(STDERR)。
重定向命令列表如下:
命令 | 说明 |
---|---|
n > file | 将文件描述符为n的文件重定向到file |
n >> file | 将文件描述符为n的文件以追加的方式重定向到file。 |
n >& m | 将输出文件 m 和 n 合并。 |