在 Bash 中何時使用別名、指令碼和新函式


在使用 Bash 時,瞭解使用別名、指令碼和新函式之間的區別非常重要。每個都有其獨特的用例,可用於完成不同的任務。

別名

別名是為命令或一系列命令建立快捷方式的一種方法。它們使用“alias”關鍵字定義,後跟所需的快捷方式及其應引用的命令。例如,以下建立了“ls -la”命令的別名:

alias ll='ls -la'

這允許使用者鍵入“ll”而不是“ls -la”來檢視目錄內容的長列表。別名儲存在使用者的 shell 配置檔案中,因此每次啟動新的終端會話時都可用。

別名的一種用例是為常用命令建立快捷方式。例如,如果您經常瀏覽目錄,可以為“cd”命令建立包含您要轉到的目錄的別名,如下所示:

alias mydocs='cd ~/Documents'

這允許您在終端中簡單地鍵入“mydocs”,而不是每次都鍵入“cd ~/Documents”。

需要注意的是,別名不是持久的,它們僅在當前的 shell 會話中可用。因此,如果您關閉終端或登出,別名將丟失。

指令碼

指令碼是一個包含一系列要按順序執行的命令的檔案。它們通常用於自動化重複性任務或執行單個命令或別名難以完成的一組命令。

指令碼使用文字編輯器建立,通常儲存為“.sh”副檔名。可以透過在終端中執行命令“bash scriptname.sh”來執行它們。

例如,假設您需要定期將一組檔案從一個目錄複製到另一個目錄。您可以建立一個包含這些命令的指令碼,並在需要複製檔案時執行該指令碼,而不是手動鍵入複製每個檔案的命令。

#!/bin/bash
cp ~/Desktop/file1.txt ~/Documents/
cp ~/Desktop/file2.txt ~/Documents/

指令碼還可以使用迴圈和條件語句來自動化重複性任務。這使您可以執行諸如重新命名多個檔案或建立某些檔案或目錄的備份等任務。

需要注意的是,指令碼可以透過多種方式呼叫,您還可以使指令碼可執行並直接執行它。

函式

函式是可以使用不同輸入多次執行的程式碼塊。它們使用“function”關鍵字定義,後跟函式名稱和用花括號括起來的一組命令。函式通常儲存在使用者的 shell 配置檔案中,並且可以像任何其他命令一樣使用。

例如,假設您經常需要在目錄及其所有子目錄中搜索特定檔案。您可以建立一個函式,該函式以搜尋詞作為引數並執行搜尋:

function search {
   find . -name $1 -print
}

可以透過在終端中執行命令“search searchterm”來呼叫此函式。

函式還有助於將複雜的指令碼分解成更小、更易於管理的部分。

需要注意的是,函式是持久的,並且在每個 shell 會話中都可用,這與別名不同。

結論

總之,在使用 Bash 時,瞭解使用別名、指令碼和新函式之間的區別非常重要。每個都有其獨特的用例,可用於完成不同的任務。

別名是為命令或一系列命令建立快捷方式的一種方法,對於為常用命令建立快捷方式很有用。指令碼是一個包含一系列要按順序執行的命令的檔案,通常用於自動化重複性任務或執行單個命令或別名難以完成的一組命令。函式是可以使用不同輸入多次執行的程式碼塊,它們有助於將複雜的指令碼分解成更小、更易於管理的部分,並且在 shell 會話之間是持久的。

選擇合適的工具取決於手頭的任務和您的個人工作流程。瞭解每個工具的優勢和侷限性將有助於您做出明智的決策並提高您的工作效率。

更新於: 2023年1月25日

295 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告