成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Bash Shell 腳本新手指南(一)

開發 前端
如標題所示,本文將涵蓋面向初學者的 Bash Shell 腳本知識。雖然本文沒有回顧 Bash 的歷史,但是有很多資源能夠便于讀者了解相關內容。我們會從了解一些非常基本的概念開始,然后再將相關知識綜合起來。

如標題所示,本文將涵蓋面向初學者的 Bash Shell 腳本知識。雖然本文沒有回顧 Bash 的歷史,但是有很多資源能夠便于讀者了解相關內容,讀者也可以直接訪問 https://www.gnu.org/software/bash/ 上的 GNU 項目。我們會從了解一些非常基本的概念開始,然后再將相關知識綜合起來。

創建腳本文件

首先來創建一個腳本文件。我們要確保當前目錄為家目錄。

  1. cd ~ 

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

  1. touch learnToScript.sh 

此時家目錄中就生成了一個名為 learnToScript.sh 的文件。輸入以下命令以檢驗該文件是否存在,還可以注意到其權限是 -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 ~]$ 

正式開始之前還有一件事要做。可以試一下在沒有寫入任何內容的情況下執行腳本,命令行輸入以下內容:

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

提示權限被拒絕,因為該文件沒有執行權限。所以你需要更改文件的權限才能執行腳本。

假定我們已經了解了權限相關知識,回到終端更改 learnToScript.sh 文件,增加執行權限。輸入以下內容:

  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 ~]$ 

好的,現在一切準備就緒,你已經獲得了 learnToScript.sh 命令的讀取、寫入和執行權限 (-rwxr-xr-x)。

編輯腳本文件

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

  1. vim learnToScript.sh 

這會打開一個空的文本文件,里面有一堆波浪號。鍵盤輸入 i 將進入插入模式。通過查看終端窗口的左下角,你可以確認它處于該模式。(友情推薦,nano 編輯器也很不錯。)

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

  1. #!/bin/bash 

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

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

開始正式寫腳本

echo 命令

echo 命令用于向終端返回一些信息,可以使用單引號、雙引號或不使用引號。那么讓我們用一個傳統的 Hello World 來試試它!

  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 ~]$ 

注意,上述三行得到了相同的結果。使用單引號、雙引號或不使用引號的結果不是一定相同的,但在這個基本腳本中確實得到了同樣的結果。在某些情況下,引號的類型不同會導致結果差異。至此恭喜你編寫了第一個 Bash 腳本。當你繼續創建更多腳本并放飛你的想法時,可能會需要了解以下更多的知識。

命令替換 $( ) 和 ` `

命令替換可以實現以下效果:獲取在命令行執行命令的結果,并將該結果寫入變量。例如,如果在命令提示符下輸入 ls,可以獲得當前工作目錄的列表。我們用這個命令來實踐一下。命令替換選項有兩個,請注意:第一個選項使用鍵盤左側 Tab 鍵上方的反引號。它與波浪號 ~ 在一個鍵位上。第二個選項使用 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 ~]$ 

注意變量、等號和命令開頭之間不要有空格。使用這兩個選項得到的結果是完全相同的。請注意,變量需要以美元符號開頭。如果你忘記了,并且回顯了不帶美元符號的命令變量,會只輸出命令的名稱,如下所示:

  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 ~]$ 

雙括號 (())

那么雙括號有什么用呢? 很簡單,雙括號用于數學方程式。 

  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 ~]$ 

結語

至此,我們已經創建了第一個腳本。我們知道了如何執行多個命令:將它們放在一個腳本中并運行,就可以獲得結果。下一篇文章會繼續討論,了解輸入和輸出的重定向、管道命令、使用雙括號或者添加注釋等知識。

 

責任編輯:未麗燕 來源: Linux中國
相關推薦

2022-02-28 11:02:53

函數Bash Shell語句

2022-01-20 16:43:38

Bash 腳本ShellLinux

2022-05-16 15:37:32

開源軟件

2010-06-07 16:10:53

HadoopOnDem

2022-04-08 12:56:52

Linux終端命令

2025-01-13 07:15:00

Monorepo代碼倉庫中項目代碼管理

2010-06-21 12:39:56

OSPF路由協議

2023-03-01 08:00:00

機器學習數據集

2010-05-27 10:42:38

SVN配置文檔

2009-11-16 08:58:43

PHP語言

2011-08-23 10:11:10

LinuxTop命令

2010-08-04 09:06:21

Flex安裝

2023-03-15 09:46:07

R Markdown代碼語法

2010-09-01 16:56:11

無線局域網

2010-07-01 12:35:46

UML用例圖

2011-03-30 14:07:56

Ubuntu的安裝

2010-08-02 09:36:22

Flex

2021-08-28 17:30:51

LinuxSSH

2010-05-24 16:36:14

2009-10-10 16:50:33

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一级毛片 | 久久精品这里精品 | 国产探花在线精品一区二区 | 正在播放一区二区 | 99这里只有精品 | 7777精品伊人久久精品影视 | 国产一区 在线视频 | 欧美 日韩 亚洲91麻豆精品 | av天天干 | 午夜欧美日韩 | 日韩美av| 狠狠躁18三区二区一区 | 日韩在线不卡视频 | 免费视频久久久久 | 国产免费xxx | 精品亚洲国产成av人片传媒 | 日韩一级一区 | 综合激情网 | 精品免费国产视频 | 精品国产乱码久久久久久丨区2区 | 精品国产91亚洲一区二区三区www | 午夜欧美| 国产精品久久久久久久久图文区 | 在线成人免费视频 | 男人的天堂亚洲 | 精品欧美一区二区三区久久久 | 极品粉嫩国产48尤物在线播放 | 美女一区 | 日韩欧美不卡 | 日本不卡免费新一二三区 | 精品免费国产 | 本道综合精品 | 国产精品日韩欧美一区二区 | 九九在线视频 | 国产成人精品一区二区三 | 成人欧美一区二区三区在线播放 | 日韩一区二区在线播放 | 一级做a爰片性色毛片视频停止 | 激情六月丁香婷婷 | 日日操夜夜操天天操 | 日韩一区二区av |