Linux SHELL中sh和bash的區別

2022-06-30 23:33:10 字數 1050 閱讀 6581

什麼是shell?

shell的中文意思就是貝殼,其實比較類似於我們核心的殼。簡而言之就是只要能夠操作應用程式的介面都能夠稱為shell。狹義的shell指的是命令列方面的軟體,廣義的shell則包括圖形介面。

shell的版本

在鳥哥的私房菜的一書中,介紹了unix的版本以及眾多的shell版本。

早在unix年代,發展者眾多,所以由於shell依據發展者的不同就有許多版本,比如sh,c shell,k shell,還有tcsh等,每一種shell都各有特點。當然也有我們的bash,bash這個shell是bourne shell的增強版本,也是基於gnu的架構下發展出來的。

sh和bash的區別

因為bash是sh的增強版本,在我們平常實地操作的時候如果sh這個命令不靈了我們應當使用bash。

舉個例子來說如果我們使用數字的加減

有幾種不同的版本,

#! /bin/bash

no1=4

no2=5

let no1++let result=no1+no2

echo

$result

result=$[no1+no2]

echo

$result

result=$[$no1+5

]echo

$result

result=$((no1+50

))echo

$result

如果使用sh則輸出

test3.

sh: 4: test3.sh

: let: not found

test3.

sh: 5: test3.sh

: let: not found

$[no1+no2]

$[4+5

]54

可以看見sh不僅不支援多種命令,而且很多細小的差別。 

所以其實我們應該更多的使用bash,也就是./xx.sh,前提是修改許可權,chmod a+x xx.sh。

linux shell 之 sh與bash區別

在shell指令碼的開頭往往有一句話來定義使用哪種sh直譯器來解釋指令碼。1 bin sh 2 bin bash 二者區別如下 1.新建test.sh指令碼內容如下 bin sh source pcy.sh pcy.sh並不存在 echo hello 執行.test.sh,螢幕輸出為 test.sh...

Linux中的Shell bash和sh區別

shell 中文意思貝殼,寓意類似核心的殼。shell是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。shell 是乙個用 c 語言編寫的程式,它是使用者使用 linux 的橋梁。shell 既是一種命令語言,又是一種程式語言。shell 指令碼 shell ...

shell指令碼中source和sh的區別

在當前shell下定義乙個變數 var1 var1 defined in shell 在指令碼中輸出上面定義的變數,然後再定義乙個新的變數 cat eof script.sh echo var1 var2 var var2 defined in the script.sh eof echo var1...