一、位于第一行的#!
当一个文件中开头是#!时,内核会扫描改行的剩余部分,看是否存在可用来执行程序的解释器的完整路径,此外内核还会扫描是否有一个选项要传给解释器,内核会以指定的选项来引用解释器,在搭配命令行的其他部分。
例如:
有一个csh脚本,名为/usr/ucb/whizprog
它的第一行为#!/bin/csh -f,且/usr/ucb位于PATH中,
于是当用户输入whizprog -q /dev/tty01时,内核解释#!命令行后就会以如下方式引用csh:
/bin/csh -f /usr/ucb/whizprog -q /dev/tty01
在实际编写脚本时,脚本是否具有可移植性取决于是否有完整的路径名称。
在书写脚本时不使用任何选项,也可以在脚本后面添加" -" ,基于安全性的考虑,这可以避免某种程度上得欺骗是攻击。
例:
#! /bin/sh -
二、shell的基本元素
'-' 以及'--'表示选项
“;