千家信息网

我看shell的第一眼

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,我看shell的第一眼1、脚本解释器设置脚本第一行:#!/bin/sh[root@SUN sun]# cat test.sh#!/bin/sh首先第一行可以拆分为两部分,#!和绝对路径,#!只是特殊的
千家信息网最后更新 2026年11月01日我看shell的第一眼

我看shell的第一眼

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

进程 命令 脚本 解释器 解释 一行 文件 路径 个子 手动 用户 输入 特殊 交互式 内容 函数 参数 只是 地址 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 互联网科技公司经营范围 互联网科技行业发展 互联网巨头科技公司 网络科技有限互联网 美国互联网科技 互联网科技小贷 互联网 科技创业 融势互联网科技 多迪互联网科技有限公司 镁科技互联网资讯平台 宁波青枫互联网科技有限公司 厦门比较好的科技互联网公司 互联网公司科技股 智腾互联网科技有限公司 996高科技互联网公司 黑科技 体验场景 互联网大会 陕西云淼互联网科技公司 北京军民互联网科技公司 恒生科技指数 中概互联网 中国互联网科技股 互联网最新的科技有限公司 无线互联网科技 中盈科技互联网信息有限公司 深圳前海聚择互联网科技有限公司 恒银科技与互联网金融 重庆互联网医院沙龙医盟信息科技 健康食品互联网创新科技园项目 恒生科技互联网指数十大成分股 广州全民伙伴互联网科技有限公司
0