從單個提示符一次執行多行 Shell 程式碼


您可以使用 shell 指令碼或使用 bash 或 sh 命令等命令列工具在單個提示符下一次執行多行 shell 程式碼。

要建立 shell 指令碼,您可以使用文字編輯器編寫程式碼並將其儲存為 .sh 副檔名。例如,您可以建立一個名為“script.sh”的檔案並新增以下程式碼:

#!/bin/bash
echo "Hello, World!"
echo "This is a shell script."

然後,您可以使用命令 bash script.sh 或 sh script.sh 執行指令碼。

另一種方法是使用 << 符號(也稱為 here-string),它允許您將多行文字作為標準輸入傳遞給命令。例如:

bash << EOF
echo "Hello, World!"
echo "This is a shell script."
EOF
You can also use << with other commands, like this

cat << EOF
Line 1
Line 2
Line 3
EOF

您可以將 here-doc 語法與任何從標準輸入讀取的命令一起使用。

多行程式碼技術

有幾種技術可用於在 shell 指令碼或命令提示符下編寫多行程式碼。一些最常見的包括:

使用文字編輯器 - 您可以使用 nano、vi 或 emacs 等文字編輯器編寫程式碼,並將其儲存為 .sh 副檔名的檔案。然後,您可以透過執行 bash script.sh 或 sh script.sh 來執行指令碼。

使用 \ 字元 - 您可以在每行末尾使用 \ 字元來指示命令在下一行繼續。例如:

echo "This is a very long command" \
     "that spans multiple lines"

使用括號 - 您可以使用括號將命令組合在一起並跨越多行。例如:

 (echo "This is the first line"
 echo "This is the second line")

使用 ; - 您可以使用 ; 分隔命令並在同一行執行它們

echo "This is first command"; echo "This is second command"

使用 && - 您可以使用 && 執行多個命令,其中每個命令僅在前面的命令成功時才執行

command1 && command2 && command3

使用 || - 您可以使用 || 執行多個命令,如果第一個命令失敗,則執行第二個命令

command1 || command2

使用 << 符號 (here-string) - 如前所述,您可以使用 << 符號將多行文字作為標準輸入傳遞給命令。

bash << EOF
echo "Hello, World!"
echo "This is a shell script."
EOF

每種技術都有其自身的優點和缺點,您應該選擇最適合您需求並在您的用例中具有最佳可讀性的技術。

使用反斜槓

使用反斜槓 (\) 是在 shell 指令碼或命令提示符下編寫多行程式碼的常用技術。

例如,您可以使用反斜槓將長的 echo 命令拆分為多行:

echo "This is a very long command that spans multiple lines" \
     "and is broken up into multiple lines for readability"

您還可以使用反斜槓將包含多個引數或選項的長命令拆分為多行。例如:

command --option1 value1 \
         --option2 value2 \
         --option3 value3

使用括號和花括號

使用括號和花括號是在 shell 指令碼或命令提示符下編寫多行程式碼的另一種常用技術。

括號用於將命令組合在一起並將其作為單個單元執行。例如,您可以使用括號將多個 echo 命令組合在一起:

(echo "This is the first line"
 echo "This is the second line")

花括號用於建立一起執行的命令塊。它類似於使用括號,但是使用花括號,您可以為塊命名,然後以後將其作為單個命令引用。例如:

# Define a block of commands
block_of_commands() {
   echo "This is the first command"
   echo "This is the second command"
}

# Execute the block of commands
block_of_commands

括號和花括號都可用於建立可多次執行的可重用程式碼塊,並使用不同的引數或在不同的上下文中執行。

使用 EOF 標記

使用 EOF (end-of-file) 標記是在 shell 指令碼或命令提示符下編寫多行程式碼的一種技術。

例如,您可以使用 EOF 標記建立一個簡單的指令碼,該指令碼列印“Hello, World!”和“This is a shell script.”:

bash << EOF
echo "Hello, World!"
echo "This is a shell script."
EOF

您還可以將 EOF 標記與其他命令一起使用,例如 cat 來列印檔案的內容:

cat << EOF
Line 1
Line 2
Line 3
EOF

EOF 標記技術類似於使用文字編輯器編寫程式碼並將其儲存為 .sh 副檔名的檔案,但它允許您一步完成程式碼的編寫和執行。

使用雙與號

使用雙與號 (&&) 是在 shell 指令碼或命令提示符下編寫多行程式碼的一種技術。雙與號運算子允許您連續執行多個命令,其中每個命令僅在前面的命令成功時才執行。

例如,您可以使用雙與號運算子執行一個命令來檢查檔案是否存在,然後執行另一個命令,該命令僅在檔案存在時才執行:

test -e file.txt && echo "file exists"

您還可以使用雙與號運算子將多個命令連結在一起,其中每個命令僅在前面的命令成功時才執行:

command1 && command2 && command3

使用分號

使用分號 (;) 是在 shell 指令碼或命令提示符下編寫多行程式碼的一種技術。分號用於分隔命令並在同一行執行它們。

例如,您可以使用分號在同一行執行多個 echo 命令:

echo "This is first command"; echo "This is second command"

或者您可以使用分號執行不同型別的多個命令:

ls -l; echo "Hello World!"; pwd

當您想按特定順序執行多個命令並且您不關心任何特定命令的成功或失敗時,此技術很有用。

結論

在 shell 指令碼或命令提示符下編寫多行程式碼可以使用多種技術完成,包括使用文字編輯器,使用 \ 字元,使用括號和花括號,使用 << 符號 (here-string),使用 ;,&& 和 ||。每種技術都有其自身的優點和缺點,重要的是選擇最適合您需求並在您的用例中具有最佳可讀性的技術。

更新於:2023年1月24日

21K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

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