1樓:匿名使用者
[ ] 實際上是bash 中 test 命令的簡寫。即所有的 [ expr ] 等於 test expr
對 test 命令來說, 用 -eq 要進行數字比較,而你此時傳入字串,就報錯了。
[[ expr ]] 是bash中真正的條件判斷語句,其語法更符合程式設計習慣 (比如 &&, || 的用法),雖然我認為在 [[ ]] 中 故意傳字串給 -eq 也應該像 test 一樣報錯,但是顯然bash實現中直接把非整數的字串直接轉換成了 0 (你可以自行驗證,在 [[ ]] 中的,任何需要整數,但是提供的確又是其他不能轉換成整數的字串,都變成了0)。 這應該是bash實現中的沒有對 [[ ]] 中 -eq 操作符兩邊的內容進行檢查導致的。 對於我們來說,沒必要鑽這些東西,我們應該保證自己**中的需要用到整數的時候,總是提供整數。
2樓:地表最帥
linux中現在主要用的是bash
由於歷史的發展以及版權問題,各個發行版有一些區別,不過linux基本都是用的bash
其它的都是各個unix用的,比如 solaris 用的就是csh.
shell中的' ' 和" "是什麼意思,有什麼區別
3樓:轉轉耳朵
在bash裡,這兩個都是抄
引號,用來表
襲明字串,區bai別是,雙du引號中的變數會被zhi,而單dao引號中不再。
舉個例子:
a="abc"
echo "str=$a" # 結果顯示 str=abcecho 'str=$a' # 結果顯示str=$a
shell 裡 ` 和 “” 有什麼區別?
4樓:雪v歌
在bash裡,這兩個都是引號,用來表明字串,區別是,雙引號中的變數會被,而單引號中不再。
舉個例子:
a="abc"
echo "str=$a" # 結果顯示 str=abcecho 'str=$a' # 結果顯示str=$a
shell == 和 = 號的區別
5樓:匿名使用者
== 可用
於判斷變數是否相等,= 除了可用於判斷變數是否相等外,還可以表示專賦值。
= 與 == 在 [ ] 中表示判斷(字串比屬較)時是等價的,例如:
s1="foo"
s2="foo"
[ $s1=$2 ] && echo "equal"
[ $s1==$2 ] && echo "equal"
最後兩個語句是等價的
在 (( )) 中 = 表示賦值, == 表示判斷(整數比較),它們不等價,比如
((n=5))
echo $n
((n==5)) && echo "equal"
((n=5)) 表示賦值,((n==5)) 表示判斷。
6樓:
=是賦值
a =1 a的值就是1
==是比較
a == 1 a的值是否與1相等(一般放在判斷語句中)
shell 程式設計裡面./ 和. 的區別是什麼儘量詳細;
7樓:半季流年
. 表示當前目錄,你用命令ls -a顯示所有資料夾,顯示結果中會有.和..兩個目錄,..代表上級目錄。
./ 是用了執行當前目錄下的可執行檔案或指令碼檔案。因為你所用的當前目錄往往不是系統環境變數中所包含的路徑,所以如果你在執行你自己寫的程式或指令碼時,如果只輸入程式名或指令碼名,shell會提示找不到命令,加上.
/ 就是告訴shell在當前目錄搜尋你的可執行程式或指令碼。
8樓:匿名使用者
./ 指當前目錄;
. 直在現在這個shell環境裡執行指令碼而不是spawn(產生)一個子shell執行指令碼。
linux中shell分多少種,都有什麼區別
9樓:四舍**入
shell是一種指令碼語言,那麼,就必須有直譯器來執行這些指令碼,常見的指令碼直譯器有:
bash:是linux標準預設的shell。bash由brian fox和chet ramey共同完成,是bourneagain shell的縮寫,內部命令一共有40個。
sh: 由steve bourne開發,是bourne shell的縮寫,sh 是unix 標準預設的shell。
另外還有:ash、 csh、 ksh等。
10樓:芋頭醬啊
常見的 shell 有 sh、bash、csh、tcsh、ash 等。
shsh 的全稱是 bourne shell,由 at&t 公司的 steve bourne開發,為了紀念他,就用他的名字命名了。
sh 是 unix 上的標準 shell,很多 unix 版本都配有 sh。sh 是第一個流行的 shell。
cshsh 之後另一個廣為流傳的 shell 是由柏克萊大學的 bill joy 設計的,這個 shell 的語法有點類似c語言,所以才得名為 c shell ,簡稱為 csh。
bill joy 是一個風雲人物,他創立了 bsd 作業系統,開發了 vi 編輯器,還是 sun 公司的創始人之一。
bsd 是 unix 的一個重要分支,後人在此基礎上發展出了很多現代的作業系統,最著名的有 freebsd、openbsd 和 netbsd,就連 mac os x 在很大程度上也基於bsd。
tcsh
tcsh 是 csh 的增強版,加入了命令補全功能,提供了更加強大的語法支援。
ash一個簡單的輕量級的 shell,佔用資源少,適合執行於低記憶體環境,但是與下面講到的 bash shell 完全相容。
bash
bash shell 是 linux 的預設 shell,本教程也基於 bash 編寫。
bash 由 gnu 組織開發,保持了對 sh shell 的相容性,是各種 linux 發行版預設配置的 shell。
bash 相容 sh 意味著,針對 sh 編寫的 shell **可以不加修改地在 bash 中執行。
儘管如此,bash 和 sh 還是有一些不同之處:
一方面,bash 擴充套件了一些命令和引數;
另一方面,bash 並不完全和 sh 相容,它們有些行為並不一致,但在大多數企業運維的情況下區別不大,特殊場景可以使用 bash 代替 sh。
11樓:馬紮額
樓主不用記得那麼多了 現在的linux裡shell都用bash其他的現在都淘汰了
光能和聲能的最主要區別是什麼
樂筆曉新 光能從巨集觀上看是直射的,從微觀上看是波動的,具有一定能量。光是一系列電磁波,也稱可見光譜。在科學上的定義,光是指所有的電磁波譜。光是由光子為基本粒子組成,具有粒子性與波動性,稱為波粒二象性。光可以在真空 空氣 水等透明的物質中傳播。對於可見光的範圍沒有一個明確的界限,一般人的眼睛所能接受...
美國CPA和ACCA的主要區別是什麼
高頓教育 美國cpa和acca的主要區別在於美國注會的發展空間更大,美資企業及赴美上市公司較多,acca則更為歷史悠久兩者都是不錯的國際化證書。 遷木網 acca 特許公認會計師 進入中國大陸地區較早,因此在中國acca比美國cpa的認識程度更高。但是隨著中國加入wto之後,中國經濟更趨國際化,以及...
FOB與FCA的主要區別是什麼?(P S 是主要區別)
fob與fca的主要區別是 適用的運輸方式不同。fob只適用於海運,而fca適用於任何運輸方式。fob是國際 中常用的 術語之一,fob的全文是free on board,即船上交貨 指定裝運港 習慣稱為裝運港船上交貨。貨裝船即可。fca 買方承擔運費,承擔風險。貨交承運人。fob 只要貨裝上船,賣...