浅谈linux操作系统(浅谈linux云计算培训)

真的很抱歉,因为头条限制了#的出现,所以我在这里声明一下。
Linux #!/bin/bash和#!/bin/sh之间的区别
1、
#!/bin/sh:
这个脚本使用/bin/sh来解释执行,#!是一个特殊符号,后跟解释该脚本的shell的路径。
#!/bin/bash:
这个脚本使用/bin/bash来解释执行,#!是一个特殊符号,后跟解释该脚本的shell的路径。
补充:
系统支持的外壳格式
2、
男人嘘
男人狂欢
Man bash和man sh演绎的一模一样。
官方解释如下:
描述
Bash是一个sh兼容的命令语言解释器,它执行从标准输入或文件中读取的命令。Bash还结合了Korn和C shell(ksh和csh)的有用特性。
Bash旨在成为IEEE POSIX规范(IEEE标准1003.1)的外壳和实用程序部分的一致实现。默认情况下,Bash可以配置为符合POSIX。
谷歌翻译如下:
Bash是一个sh兼容的命令语言解释器,它执行从标准输入或文件中读取的命令。Bash还包含Korn和C shell(ksh和csh)的有用函数。
Bash旨在成为IEEE POSIX规范(IEEE标准1003.1)的外壳和实用程序部分的一致实现。默认情况下,Bash可以配置为符合POSIX标准。
3、
从一个案例感受两者的区别。
3.1、
创建新的demo.sh脚本
写入
#!/bin/sh
source unexisted . sh # unexisted . sh实际上并不存在
echo \ ‘你好,demo.sh\ ‘
3.2、
执行。/demo.sh
没有提示文件。
即:
Source不成功,source之后的代码不会运行。
3.3、
修改脚本——将其改为bash解析
#!/bin/bash
source unexisted . sh # unexisted . sh实际上并不存在
echo \ ‘你好,demo.sh\ ‘
3.4、
执行。/demo.sh
提示文件错误
但是下一句的echo \’hello,demo.sh\ ‘被执行了。
3.5、
指定sh以打开demo.sh
提示文件错误
不打印
解释:
1.sh一般设置为bash的软链接。
2.在linux系统中,使用sh调用和执行脚本相当于打开bash的POSIX标准模式。
即:
/bin/sh相当于//bin/bash – posix。
那么,sh和bash的区别其实就是bash是否启动posix模式的区别。
3、
我们把/bin/sh改成//bin/bash – posix来测试一下。
#!/bin/bash – posix
source unexisted . sh # unexisted . sh实际上并不存在
echo \ ‘你好,demo.sh\ ‘
./demo.sh
还有#!/bin/sh。
测试完成。
欢迎大家提出宝贵意见或建议。
欢迎补充或分享一些其他方法。
谢谢你的支持。

其他教程

性价比 麦克风(便宜麦克风推荐)

2022-9-3 9:48:26

其他教程

Amanda品牌(amanda 小红书)

2022-9-3 9:50:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索