自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Bash Shell 腳本新手指南(一)

開(kāi)發(fā) 前端
如標(biāo)題所示,本文將涵蓋面向初學(xué)者的 Bash Shell 腳本知識(shí)。雖然本文沒(méi)有回顧 Bash 的歷史,但是有很多資源能夠便于讀者了解相關(guān)內(nèi)容。我們會(huì)從了解一些非?;镜母拍铋_(kāi)始,然后再將相關(guān)知識(shí)綜合起來(lái)。

如標(biāo)題所示,本文將涵蓋面向初學(xué)者的 Bash Shell 腳本知識(shí)。雖然本文沒(méi)有回顧 Bash 的歷史,但是有很多資源能夠便于讀者了解相關(guān)內(nèi)容,讀者也可以直接訪問(wèn) https://www.gnu.org/software/bash/ 上的 GNU 項(xiàng)目。我們會(huì)從了解一些非?;镜母拍铋_(kāi)始,然后再將相關(guān)知識(shí)綜合起來(lái)。

創(chuàng)建腳本文件

首先來(lái)創(chuàng)建一個(gè)腳本文件。我們要確保當(dāng)前目錄為家目錄。

  1. cd ~ 

在主目錄中創(chuàng)建示例文件。文件名可以是任意名稱(chēng),本文使用 learnToScript.sh 作為文件名。

  1. touch learnToScript.sh 

此時(shí)家目錄中就生成了一個(gè)名為 learnToScript.sh 的文件。輸入以下命令以檢驗(yàn)該文件是否存在,還可以注意到其權(quán)限是 -rw-rw-r–。

  1. [zexcon@trinity ~]$ ls -l 
  2. total 7 
  3. drwxr-xr-x. 1 zexcon zexcon   90 Aug 30 13:08 Desktop 
  4. drwxr-xr-x. 1 zexcon zexcon   80 Sep 16 08:53 Documents 
  5. drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads 
  6. -rw-rw-r--. 1 zexcon zexcon   70 Sep 17 10:10 learnToScript.sh 
  7. drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Music 
  8. drwxr-xr-x. 1 zexcon zexcon  318 Sep 15 13:53 Pictures 
  9. drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Public 
  10. drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Videos 
  11. [zexcon@trinity ~]$ 

正式開(kāi)始之前還有一件事要做。可以試一下在沒(méi)有寫(xiě)入任何內(nèi)容的情況下執(zhí)行腳本,命令行輸入以下內(nèi)容:

  1. ./learnToScript.sh 
  1. [zexcon ~]$ ./learnToScript.sh 
  2. bash: ./learnToScript.sh: Permission denied 

提示權(quán)限被拒絕,因?yàn)樵撐募](méi)有執(zhí)行權(quán)限。所以你需要更改文件的權(quán)限才能執(zhí)行腳本。

假定我們已經(jīng)了解了權(quán)限相關(guān)知識(shí),回到終端更改 learnToScript.sh 文件,增加執(zhí)行權(quán)限。輸入以下內(nèi)容:

  1. chmod 755 learnToScript.sh 
  1. [zexcon@trinity ~]$ ls -l 
  2. total 7 
  3. drwxr-xr-x. 1 zexcon zexcon   90 Aug 30 13:08 Desktop 
  4. drwxr-xr-x. 1 zexcon zexcon   80 Sep 16 08:53 Documents 
  5. drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads 
  6. -rwxr-xr-x. 1 zexcon zexcon   70 Sep 17 10:10 learnToScript.sh 
  7. drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Music 
  8. drwxr-xr-x. 1 zexcon zexcon  318 Sep 15 13:53 Pictures 
  9. drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Public 
  10. drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Videos 
  11. [zexcon@trinity ~]$ 

好的,現(xiàn)在一切準(zhǔn)備就緒,你已經(jīng)獲得了 learnToScript.sh 命令的讀取、寫(xiě)入和執(zhí)行權(quán)限 (-rwxr-xr-x)。

編輯腳本文件

下面的內(nèi)容需要你熟悉 vim 或其他類(lèi)似的文本編輯器,本文選用 vim。在命令提示符下輸入以下內(nèi)容:

  1. vim learnToScript.sh 

這會(huì)打開(kāi)一個(gè)空的文本文件,里面有一堆波浪號(hào)。鍵盤(pán)輸入 i 將進(jìn)入插入模式。通過(guò)查看終端窗口的左下角,你可以確認(rèn)它處于該模式。(友情推薦,nano 編輯器也很不錯(cuò)。)

接下來(lái)我們要確保文件被正確的解釋器識(shí)別。因此,輸入 #! 和 bash 的目錄 /bin/bash:

  1. #!/bin/bash 

本文教程步驟的最后一件事是保存文檔。按 Esc 退出輸入模式,然后按 Shift+:。在冒號(hào)處輸入 wq,按下回車(chē)鍵,就會(huì)寫(xiě)入(w)文件并退出(q)vim 編輯器。

使用 vim 時(shí)要記住,要想寫(xiě)入文檔,就需要輸入 i,此時(shí)你會(huì)在底部看到 –INSERT–。要保存文檔,就需要按 Esc 退出輸入模式,然后按 Shift+:,輸入 w 寫(xiě)入文件;或者按 Esc,然后 Shift+: 輸入 q,實(shí)現(xiàn)退出而不保存;或者將 wq 連在一起,可以實(shí)現(xiàn)寫(xiě)入并關(guān)閉文件。Esc 本身就只是退出插入模式。你可以在其 官方網(wǎng)站 或 教程網(wǎng)站 上找到更多關(guān)于 vim 的信息。

開(kāi)始正式寫(xiě)腳本

echo 命令

echo 命令用于向終端返回一些信息,可以使用單引號(hào)、雙引號(hào)或不使用引號(hào)。那么讓我們用一個(gè)傳統(tǒng)的 Hello World 來(lái)試試它!

  1. #!/bin/bash 
  2. echo Hello World! 
  3. echo 'Hello World!' 
  4. echo "Hello World!" 
  1. [zexcon ~]$ ./learnToScript.sh 
  2. Hello World! 
  3. Hello World! 
  4. Hello World! 
  5. [zexcon ~]$ 

注意,上述三行得到了相同的結(jié)果。使用單引號(hào)、雙引號(hào)或不使用引號(hào)的結(jié)果不是一定相同的,但在這個(gè)基本腳本中確實(shí)得到了同樣的結(jié)果。在某些情況下,引號(hào)的類(lèi)型不同會(huì)導(dǎo)致結(jié)果差異。至此恭喜你編寫(xiě)了第一個(gè) Bash 腳本。當(dāng)你繼續(xù)創(chuàng)建更多腳本并放飛你的想法時(shí),可能會(huì)需要了解以下更多的知識(shí)。

命令替換 $( ) 和 ` `

命令替換可以實(shí)現(xiàn)以下效果:獲取在命令行執(zhí)行命令的結(jié)果,并將該結(jié)果寫(xiě)入變量。例如,如果在命令提示符下輸入 ls,可以獲得當(dāng)前工作目錄的列表。我們用這個(gè)命令來(lái)實(shí)踐一下。命令替換選項(xiàng)有兩個(gè),請(qǐng)注意:第一個(gè)選項(xiàng)使用鍵盤(pán)左側(cè) Tab 鍵上方的反引號(hào)。它與波浪號(hào) ~ 在一個(gè)鍵位上。第二個(gè)選項(xiàng)使用 shell 變量。 

  1. #!/bin/bash 
  2. command1=`ls` 
  3. echo $command1 
  4. command2=$(ls) 
  5. echo $command2 
  1. [zexcon ~]$ ./learnToScript.sh 
  2. Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos 
  3. Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos 
  4. [zexcon ~]$ 

注意變量、等號(hào)和命令開(kāi)頭之間不要有空格。使用這兩個(gè)選項(xiàng)得到的結(jié)果是完全相同的。請(qǐng)注意,變量需要以美元符號(hào)開(kāi)頭。如果你忘記了,并且回顯了不帶美元符號(hào)的命令變量,會(huì)只輸出命令的名稱(chēng),如下所示:

  1. #!/bin/bash 
  2. command1=`ls` 
  3. echo command1 
  4. command2=$(ls) 
  5. echo command2 
  1. [zexcon ~]$ ./learnToScript.sh 
  2. command1 
  3. command2 
  4. [zexcon ~]$ 

雙括號(hào) (())

那么雙括號(hào)有什么用呢? 很簡(jiǎn)單,雙括號(hào)用于數(shù)學(xué)方程式。 

  1. #!/bin/bash 
  2. echo $((5+3)) 
  3. echo $((5-3)) 
  4. echo $((5*3)) 
  5. echo $((5/3)) 
  6.  
  7. [zexcon ~]$ ./learnToScript.sh 
  8. 15 
  9. [zexcon ~]$ 

結(jié)語(yǔ)

至此,我們已經(jīng)創(chuàng)建了第一個(gè)腳本。我們知道了如何執(zhí)行多個(gè)命令:將它們放在一個(gè)腳本中并運(yùn)行,就可以獲得結(jié)果。下一篇文章會(huì)繼續(xù)討論,了解輸入和輸出的重定向、管道命令、使用雙括號(hào)或者添加注釋等知識(shí)。

 

責(zé)任編輯:未麗燕 來(lái)源: Linux中國(guó)
相關(guān)推薦

2022-01-20 16:43:38

Bash 腳本ShellLinux

2022-02-28 11:02:53

函數(shù)Bash Shell語(yǔ)句

2022-05-16 15:37:32

開(kāi)源軟件

2022-04-08 12:56:52

Linux終端命令

2010-06-07 16:10:53

HadoopOnDem

2025-01-13 07:15:00

Monorepo代碼倉(cāng)庫(kù)中項(xiàng)目代碼管理

2010-06-21 12:39:56

OSPF路由協(xié)議

2023-03-01 08:00:00

機(jī)器學(xué)習(xí)數(shù)據(jù)集

2009-11-16 08:58:43

PHP語(yǔ)言

2010-05-27 10:42:38

SVN配置文檔

2023-03-15 09:46:07

R Markdown代碼語(yǔ)法

2011-08-23 10:11:10

LinuxTop命令

2010-08-04 09:06:21

Flex安裝

2010-09-01 16:56:11

無(wú)線局域網(wǎng)

2011-03-30 14:07:56

Ubuntu的安裝

2010-08-02 09:36:22

Flex

2021-08-28 17:30:51

LinuxSSH

2010-07-01 12:35:46

UML用例圖

2010-05-24 16:36:14

2009-10-10 16:50:33

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)