论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
主机系统
›
linux
›
Linux启动脚本内里的#!/bin/sh是什么意思?为什么是#! ...
Linux启动脚本内里的#!/bin/sh是什么意思?为什么是#!
科技颠覆者
论坛元老
|
2025-1-14 09:01:21
|
显示全部楼层
|
阅读模式
楼主
主题
2060
|
帖子
2060
|
积分
6180
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
#!/bin/sh 是一个在 Unix 和类 Unix 操作系统(如 Linux)中常见的 shebang(或称为 hashbang)行。它的作用是告诉操作系统该脚本应该使用哪个表明器来执行。
表明:
#!
:这个符号组合称为 “shebang”。它的存在表明接下来的字符将指定表明器的路径。
/bin/sh
:这是要使用的表明器的完整路径。sh 是 Bourne shell 的简称,通常是系统中一种最基本的 shell。它是用于执行 shell 脚本的程序。
功能:
当你实验执行一个包含 #!/bin/sh 的脚本时,系统会查找 /bin/sh 这个可执行文件,并用它来运行脚本中的代码。这种机制允许你写出可以在不同环境中更机动地运行的脚本,由于你可以选择不同的表明器,例如 bash、python 等。
示例:
如果你有一个名为 myscript.sh 的脚本,且开头是 #!/bin/sh,你可以通过以下下令来运行它:
./myscript.sh
复制代码
系统会主动使用 /bin/sh 来执行这个脚本。确保脚本具有可执行权限(可以使用 chmod +x myscript.sh 来赋予可执行权限)。
其他表明器:
#!/bin/bash:指定使用 Bash shell。
#!/usr/bin/env python3:指定使用 Python 3 表明器,通常会更具可移植性,由于它会主动查找 Python 表明器的路径。
#!/usr/bin/perl:指定使用 Perl 表明器。
总之,shebang 行是在脚本中指定表明器的标准方式,使得脚本在不同的环境中能正确执行。
/bin/sh和/bin/bash的异同点
/bin/sh 和 /bin/bash 都是 Unix/Linux 系统中的 shell 程序,但它们之间有一些重要的异同点。以下是它们的主要特点和区别:
共同点:
下令行表明器
:两者都是下令行表明器,用于执行下令和脚本。
脚本功能
:都可以用来编写和执行 shell 脚本,支持变量、条件语句、循环等基本编程结构。
交互使用
:都可以在下令行中交互使用,接受用户输入并执行下令。
不同点:
功能和特性
:
/bin/sh
:通常是一个较为基础的 shell,主要遵照 POSIX 标准,支持的功能比力有限。不同的 Unix/Linux 发行版中,sh 可能会指向不同的 shell(如 dash、bash 等)。
/bin/bash
:Bash(Bourne Again SHell)是一个功能丰富的 shell,提供了许多加强功能,如下令补全、汗青记录、数组、扩展的字符串操作等。
语法差异
:
Bash 支持更多的语法和扩展,如 [[ ... ]] 条件测试、(( ... )) 算术扩展等,而基本的 sh 可能只支持 [...] 情势。
Bash 还支持更先进的数组处理和参数扩展。
兼容性
:
/bin/sh 旨在确保脚本在不同的 Unix 系统上具有良好的兼容性,通常得当于编写跨平台的脚本。
Bash 提供了向后兼容性,能够执行大多数 sh 脚本,但可能包含一些 sh 不支持的功能。
启动和性能
:
sh 通常会比 bash 启动更快,得当于那些只需要基本功能的环境。
在某些环境下,特定的 Linux 系统可能会使用更轻量级的 shell(如 dash)作为 /bin/sh 的实现,以进步性能。
总结:
使用 /bin/sh 编写的脚本通常更具可移植性,得当于需要在不同环境中运行的基础操作。
使用 /bin/bash 时,你可以利用其丰富的功能和加强特性,得当于需要更复杂操作的脚本。
选择使用哪个 shell 主要取决于你的需求和环境。如果你的脚本需要特定的功能,使用 bash 会更合适;如果需要确保通用性和兼容性,使用 sh 将是更安全的选择。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
科技颠覆者
论坛元老
这个人很懒什么都没写!
楼主热帖
XAML 设计器已意外退出。(退出代码: e0 ...
OpenCV提取十字标中心点的几种思路 ...
K8S 实用工具之三 - 图形化 UI Lens ...
我分析30w条数据后发现,西安新房公摊 ...
超融合?本日你被忽悠了吗! ...
码上加速,低代码解锁高效交付案例 ...
Cesium 案例(二)Web MapTile Service ...
Python itertools 库的使用记录
【已解决】挖矿病毒 logrotate 185.19 ...
小程序IOS安全区域优化:safe-area-ins ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表