Linux-SHELL中sh和bash的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-SHELL中sh和bash的区别相关的知识,希望对你有一定的参考价值。

参考技术A sh通常是一个软链接,链接到系统默认shell,如果bash是系统默认的话那sh就是bash,debian的是dash,不是bash

执行脚本source 和 . 和sh 的区别是什么

"source""."的功能是一样的,可以调用脚本,并将脚本里的函数也传递到当前的脚本或者解释器中,即不会开启新的bash而是在当前bash中运行。
"sh"后面跟脚本名称,则不会将该脚本的函数传递进来,即需要开启新的bash,"sh"实际上是执行一个脚本,最后执行完毕会将内存释放掉,不会保存变量。
而".""source"则不会新的bash进程,这就是为什么在/etc/init.d/这个目录下有很多的脚本都会用"."去调用脚本。
综上所述:
生产环境中编写脚本一般会使用sh命令去执行脚本,因为使用sh命令执行的脚本执行完毕后会自动释放内存并不会影响当前进程中的变量。除非你明确直到想要脚本中的变量要在当前bash中生效(比如重新读取配置文件)则可以使用"source"或者"."

 

以上是关于Linux-SHELL中sh和bash的区别的主要内容,如果未能解决你的问题,请参考以下文章

Linux-Shell基础(变量,字符串,数组)

linux-shell编程-2-变量概述

linux-shell编程-2-变量概述

Linux-shell基础

bash与sh的区别

bash和sh的区别