- 在每个脚本的开头都使用"#!",这意味着告诉系统随后的脚本执行需要指定一个解
释器. - 在#!之后接着是一个路径名.这个路径名指定了一个可以解释脚本命令的程序,这个程序可以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中的命令
如:
1 #!/bin/sh
2 #!/bin/bash
3 #!/usr/bin/perl
4 #!/usr/bin/tcl
5 #!/bin/sed -f
6 #!/usr/awk -f
上边每行都代表一个不同的命令解释器,
如果是/bin/sh,那么就是默认shell(在Linux 系统中默认是Bash)
- 使用#!/bin/sh,在大多数商业发行的UNIX 上,默认是Bourne shell,这可以让你的脚本正常的运行在非Linux 机器上,虽然这将会牺牲Bash 一些独特的特征.
- 那些具有UNIX 味道的脚本(基于4.2BSD)需要一个4 字节的魔法数字,在#!后边需要一个
空格#! /bin/sh.
- 注意: #! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是
"Command not found", - 当然"#!"也可以被忽略,不过这样你的脚本文件就只能是一些命令的集合,不能够使用shell 内建指令,如果不能使用变量的话,当然这也就失去了脚本编程的意义了.
- 如果在脚本的里边还有一个#!行,那么bash 将把它认为是一个一般的注释行.
- 脚本需要读和执行权限,因为shell 需要读这个脚本.
- 为什么不直接使用scriptname 来调用脚本?如果你当前的目录下($PWD)正好有你想要
执行的脚本,为什么它运行不了呢?失败的原因是,出于安全考虑,当前目录并没有被
加在用户的$PATH 变量中.因此,在当前目录下调用脚本必须使用./scriptname 这种
形式.