温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

我看shell的第一眼

发布时间:2020-08-08 09:41:14 来源:网络 阅读:603 作者:孙小银 栏目:软件技术

我看shell的第一眼

1、脚本解释器设置

脚本第一行:#!/bin/sh

[root@SUN sun]# cat test.sh
#!/bin/sh

首先第一行可以拆分为两部分,#!和绝对路径,#!只是特殊的表示符,#!后面存放的是解释器地址(即shell存放路径)。注意,shell路径必须是全路径。其实第一行也不是非写不可,是可以省略的,不写第一行,可以手动指定shell,例如:sh   test.sh,手动指定shell,脚本文件还不必要求有执行权限。

2shell执行脚本的过程

a、执行交互式命令

用户进入终端,shell进程已经被运行,用户输入一条命令,如果是shell内部命令(例如cd,exec,此时不会新建一个进程,内部命令其实就是shell里的一个子函数,就在当前进程执行完毕。如果是一个外部命令(例如lsrm),则shell进程会先fork一个子进程,调用exec执行该命令,父进程调用wait()waitpid()来等待子进程结束。

b、执行脚本文件

shell进程会先fork一个子进程,然后调用exec执行脚本文件。这个时候执行exec执行的另外一套机制,exec会读取文本文件的第一行,如果指定了解释器,则会调用指定的解释器,从解释器的_start开始执行,脚本文件的内容就当作参数传给解释器。

3、查看当前使用shell的方法

1echo $SHELL

   [root@SUN Desktop]# echo $SHELL
  /bin/bash

2ps

[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

4ehco $0

  [root@SUN Desktop]# echo $0
   /bin/bash

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI