linux shell 之 sh與bash區別

2021-08-29 15:52:57 字數 735 閱讀 5541

在shell指令碼的開頭往往有一句話來定義使用哪種sh直譯器來解釋指令碼。

(1) #!/bin/sh

(2) #!/bin/bash

二者區別如下:

1.新建test.sh指令碼內容如下:

#!/bin/sh

source pcy.sh #pcy.sh並不存在

echo hello

執行./test.sh,螢幕輸出為:

./test.sh: line 2: pcy.sh: no such file or directory

因此可以得知,在#!/bin/sh的情況下,source不成功,不會執行source後面的**

修改test.sh指令碼的第一行如下:

#!/bin/bash

source pcy.sh #pcy.sh並不存在

echo hello

再次執行./test.sh,螢幕輸出為:

./test.sh: line 2: pcy.sh: no such file or directory

hello

原因:假如第一行寫成 #!/bin/bash --posix,執行效果跟#!/bin/sh是一樣的(遵循posix的特定規範,**就不會再向下解釋了,程式會停止在這裡!)

Linux SHELL中sh和bash的區別

什麼是shell?shell的中文意思就是貝殼,其實比較類似於我們核心的殼。簡而言之就是只要能夠操作應用程式的介面都能夠稱為shell。狹義的shell指的是命令列方面的軟體,廣義的shell則包括圖形介面。shell的版本 在鳥哥的私房菜的一書中,介紹了unix的版本以及眾多的shell版本。早在...

MySQL索引之B 樹與B 樹

本文只是個人閱讀筆記,原文建議詳細閱讀 什麼是b 樹 什麼是b 樹 我們知道mysql中索引最常用的資料結構就是hash和b tree,而其中的b 樹更是大多數 mysql 儲存引擎的預設索引型別。1 雜湊表 二叉查詢樹 b樹的比較要弄清楚b 樹,就得先知道b 樹 b 樹就是b樹 首先mysql索引...

sh與bash的區別

在shell指令碼的開頭往往有一句話來定義使用哪種sh直譯器來解釋指令碼。目前研發送測的shell指令碼中主要有以下兩種方式 1 bin sh 2 bin bash 在這裡求教同福客棧的各位大俠們乙個問題 以上兩種方式有什麼區別?對於指令碼的實際執行會產生什麼不同的影響嗎?指令碼test.sh內容 ...