当前位置:主页 > 路由器知识 >

我看shell的第一眼——脚本解释器设置

作者: 发布时间:2016-02-26 阅读: 转至微博:

 1、脚本解释器设置

脚本第一行:#!/bin/sh
[root@SUN sun]# cat test.sh
#!/bin/sh
首先第一行可以拆分为两部分,#!和绝对路径,#!只是特殊的表示符,#!后面存放的是解释器地址(即shell存放路径)。注意,shell路径必须是全路径。其实第一行也不是非写不可,是可以省略的,不写第一行,可以手动指定shell,例如:sh   test.sh,手动指定shell,脚本文件还不必要求有执行权限。
2、shell执行脚本的过程
a、执行交互式命令
用户进入终端,shell进程已经被运行,用户输入一条命令,如果是shell内部命令(例如cd,exec),此时不会新建一个进程,内部命令其实就是shell里的一个子函数,就在当前进程执行完毕。如果是一个外部命令(例如ls,rm),则shell进程会先fork一个子进程,调用exec执行该命令,父进程调用wait()或waitpid()来等待子进程结束。
b、执行脚本文件
shell进程会先fork一个子进程,然后调用exec执行脚本文件。这个时候执行exec执行的另外一套机制,exec会读取文本文件的第一行,如果指定了解释器,则会调用指定的解释器,从解释器的_start开始执行,脚本文件的内容就当作参数传给解释器。
3、查看当前使用shell的方法
(1)echo $SHELL
   [root@SUN Desktop]# echo $SHELL
  /bin/bash
(2)ps
[root@SUN Desktop]# ps
    PID TTY          TIME CMD
   3246 pts/0    00:00:00 bash
   3269 pts/0    00:00:00 ps
(3)输入一条不存在的命令,abcd
[root@SUN Desktop]# adcd
  bash: adcd: command not found
(4)ehco $0
  [root@SUN Desktop]# echo $0
   /bin/bash

本文由路由器网www.luyouqiwang.net站长编辑整理,转载请注明出处。