Linux 中 Exec 命令的使用


介紹

exec 命令是 Unix 和 Linux shell 中的內建命令,允許使用者執行命令或指令碼以代替當前 shell。這意味著 exec 命令用於用新程序替換當前 shell 程序,該程序可以是命令或指令碼。exec 命令在 shell 指令碼中很有用,當您想要執行命令或指令碼並退出當前 shell 時。

exec 命令的語法 -

示例

$ exec: exec [-cl] [-a name] [command [argument ...]] [redirection ...]

為什麼我們應該使用 exec 命令?

在 shell 指令碼中使用 exec 命令的主要優勢之一是它可以節省系統資源。當您使用 exec 命令執行命令或指令碼時,exec 命令建立的新程序在與當前 shell 相同的程序空間中執行。這意味著新程序不需要自己的程序空間,這可以節省系統資源。

在 shell 指令碼中使用 exec 命令的另一個優勢是它可以簡化指令碼的結構。當您使用 exec 命令時,您可以避免建立新程序並將其與當前 shell 分開管理。這可以使您的指令碼更簡單且更易於維護。

在本文中,我們將討論 exec 命令在 Linux 上的 shell 指令碼中的用途,包括示例和帶輸出的命令。

exec 命令的用途

在 Linux 上的 shell 指令碼中,exec 命令有幾種用途。一些主要用途是 -

使用 exec 命令執行命令或指令碼

exec 命令最基本的使用方法是用命令或指令碼替換當前 shell。例如,要執行 ls 命令,您可以使用以下命令 -

示例

$ exec ls

這將執行 ls 命令並退出當前 shell。輸出 -

示例

file1.txt file2.txt file3.txt

使用 exec 命令重定向輸出

exec 命令可用於將命令或指令碼的輸出重定向到檔案或另一個命令。例如,要將 ls 命令的輸出重定向到名為 output.txt 的檔案,可以使用以下命令 -

示例

$ exec ls > output.txt

這將執行 ls 命令並將輸出重定向到 output.txt 檔案。輸出不會顯示在終端上,而是儲存到 output.txt 檔案中。

使用 exec 命令在子 shell 中執行命令

exec 命令可用於在子 shell 中執行命令或指令碼。子 shell 是一個單獨的 shell 程序,用於執行命令或指令碼。要在子 shell 中執行命令或指令碼,您可以在命令或腳本週圍使用 ( ) 字元。例如,要在子 shell 中執行 ls 命令,可以使用以下命令 -

示例

$ exec (ls)

這將建立一個子 shell 並在其中執行 ls 命令。輸出 -

示例

file1.txt file2.txt file3.txt

使用 exec 以不同的環境執行命令

exec 命令可用於以不同的環境執行命令或指令碼。環境是一組可由 shell 及其執行的命令使用的變數。要以不同的環境執行命令或指令碼,可以使用 env 命令後跟環境變數和命令或指令碼。例如,要以 LANG 環境變數設定為 en_US.UTF-8 來執行 ls 命令,可以使用以下命令 -

示例

$ exec env LANG=en_US.UTF-8 ls

使用 exec 在不同的 shell 中執行 shell 指令碼

exec 命令可用於在不同的 shell 中執行指令碼。當您希望為指令碼的特定部分使用不同的 shell 時,這很有用。要在不同的 shell 中執行指令碼,可以使用 exec 命令後跟 shell 的路徑和指令碼。例如,要在 bash shell 中執行名為 script.sh 的指令碼,可以使用以下命令 -

示例

$ exec bash script.sh

使用 exec 以不同的使用者執行命令

exec 命令可用於以不同的使用者執行命令或指令碼。當您想以不同的使用者身份執行命令或指令碼時,這很有用,例如,以 root 使用者身份執行命令或指令碼。要以不同的使用者執行命令或指令碼,可以使用 sudo 命令後跟 exec 命令和命令或指令碼。例如,要以 root 使用者身份執行 ls 命令,可以使用以下命令 -

示例

$ sudo exec ls

結論

總之,exec 命令是 Linux 上 shell 指令碼中一個強大且有用的工具。它允許您用命令或指令碼替換當前 shell,這可以節省系統資源並簡化指令碼的結構。exec 命令也可用於重定向輸出、在子 shell 中執行命令或指令碼、以不同的環境執行命令或指令碼、在不同的 shell 中執行指令碼以及以不同的使用者執行命令或指令碼。

更新於: 2023-07-19

3K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.