1. 程式人生 > >Linux-SHELL中sh和bash的區別

Linux-SHELL中sh和bash的區別

什麼是SHELL?

shell的中文意思就是貝殼,其實比較類似於我們核心的殼。我們通過hsell和使用者通訊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。

更多交流請掃我的技術公眾號

我的技術公眾號