bash手冊(cè)(更新中)

shell是什么?

shell本身是一個(gè)命令解釋器,介于操作系統(tǒng)的內(nèi)核(kernel)態(tài)和用戶態(tài)之間,可以執(zhí)行系統(tǒng)調(diào)用及系統(tǒng)命令等,讓用戶以此來(lái)與操作系統(tǒng)實(shí)現(xiàn)互動(dòng)。同時(shí),它也用來(lái)指一種計(jì)算機(jī)程序語(yǔ)言(類似于C、Python等)。一個(gè)shell程序一般被稱為一個(gè)腳本。

shell主要流派

目前,shell主要有兩大流派:

  1. sh
  • burne shell (sh)
  • burne again shell (bash)
  1. csh:
  • c shell (csh)
  • tc shell (tcsh)
  • korn shell (ksh)

目前,大部分Linux系統(tǒng)預(yù)設(shè)的shell都是bash。

變量聲明

  • 不像C、Java等靜態(tài)語(yǔ)言需要先聲明然后才能使用,與Python等動(dòng)態(tài)語(yǔ)言類似,Bash變量在使用時(shí)直接定義
  • =作為賦值語(yǔ)句時(shí)兩邊不能有空格!,作為字符串比較符號(hào)時(shí)兩邊必須都有空格
  • 聲明或重新賦值絕不能使用$
    $VAR="abc"
    這種用法是錯(cuò)誤的,因?yàn)?還有個(gè)作用就是執(zhí)行命令
VAR=abc
VAR="abc" 

變量引用

  • 引用變量必須使用$符號(hào)
  • 以下方法等效,不能使用{$VAR}這種方法,會(huì)有花括號(hào)包裹變量的歧義
echo "THE VAR is"    $VAR; # 多個(gè)空格時(shí),認(rèn)為是一個(gè)空格
echo "THE VAR is" ${VAR};
echo "THE VAR is ${VAR}";

單引號(hào)與雙引號(hào)

'':?jiǎn)我?hào)里的任何字符都會(huì)原樣輸出,單引號(hào)中對(duì)變量引用是無(wú)效的,且單引號(hào)中不能出現(xiàn)單引號(hào)(對(duì)單引號(hào)使用轉(zhuǎn)義符也不行);
"":雙引號(hào)里可以引用變量,可以出現(xiàn)轉(zhuǎn)義字符。

流程控制

bash中對(duì)與真假的判斷

返回值是0為真,返回值非0為假

if test abc = abc; then echo $?": true"; else echo $?": false"; fi # 輸出
0: true 
if test abc == bc; then echo $?": true"; else echo $?": false"; fi # 輸出
1: false 
if test abc === bc; then echo $?": true"; else echo $?": false"; fi # 輸出下面兩行
bash: test: ===: binary operator expected
2: false 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容