unix学习-----自包脚本:第一行#!

      当shell 运行一个程序的时候,它会向unix内核申请一个全新的进程来运行shell中指定的程序。如果运行的是编译程序,那么内核知道该怎么处理,然而shell脚本却不是编译程序,当shell要求内核运行该shell时,内核处理失败,并返回一个错误信息:“not executable format file”--不是可执行格式的文件。shell接受到这个错误后,意识到“哇,这不是一个编译程序,它一定是一个shell脚本”,紧接着创建一个新的“/bin/sh ”的拷贝来运行这个程序。

      当之后一个shell时使用返回到“/bin/sh”技术非常棒,然而由于当前的unix系统有多个shell,所以当运行一个特殊的shell脚本时,必须有一种方法来告诉unix内核使用哪个shell。事实上,拥有一个能直接调用任何编程语言解释器的一般技术,而不仅仅是一个命令shell是有帮助的。它是借助与脚本文件中的特殊的第一行--以两个字符#!开头,来实现的。

当一个文件的最开始的两个字符是#!时,内核扫描该行的剩余字符作为运行该程序的解释器的全路径。内核也会扫描一个单个选项传给该解释器。内核用给定的选项和余下的命令行来调用该解释器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值