在 Unix 和 Linux 的世界中,shell 腳本是一種強大的工具,可用於任務自動化和系統管理等。通常,我們需要從一個 shell 腳本中調用另一個 shell 腳本。這不僅有助於將複雜的腳本組織成可管理的模塊,而且有助於腳本的可重用性和可維護性。
Basic Method
最直接的方法是在父腳本中使用它的路徑。
假設您有兩個腳本:script1.sh 和 script2.sh
script1.sh:
#!/bin/bash
echo "This is Script 1"
script2.sh:
#!/bin/bash
echo "Calling Script 1 from Script 2"
./script1.sh
echo "Script 1 has finished execution"
在此示例中,script2.sh 調用 script1.sh。兩個腳本都在同一目錄中,並且 script1.sh 是可執行的。
Passing Arguments
您還可以將參數從一個腳本傳遞到另一個腳本。
script1.sh:
#!/bin/bash
echo "Script 1 received the argument: $1"
script2.sh:
#!/bin/bash
./script1.sh "Hello from Script 2"
在本例中,script2.sh 將字符串 “Hello from Script 2”傳遞給 script1.sh,在 script1.sh 中作為 $1 (第一個參數) 接收。
Using Source Command
另一種方法是使用 source 命令或其簡寫(..),該方法在當前 shell 環境中執行被調用的腳本,這意味着被調用腳本的任何變量或更改都保留在調用腳本中。
script1.sh:
#!/bin/bash
MESSAGE="Message from Script 1"
script2.sh:
#!/bin/bash
source ./script1.sh
echo $MESSAGE
在本例中,script2.sh 將輸出“Message from Script 1”,因為它保留了 script1.sh 所做的環境更改
我的開源項目
- course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github倉庫)