Linux

使用 curl 將 args 從 git 傳遞給 bash 腳本

  • November 30, 2020

我正在尋找將參數傳遞給使用 curl 從 git 獲取的腳本的方法,而我的腳本需要一個參數。

有什麼方法可以將參數傳遞給腳本,如下所示:

bash <(curl -Ls <git-script-path>)

腳本用法:./script.sh -p admin. 我試圖提供-p adminbash <(curl -Ls <git-script-path>) -p admin

任何幫助將不勝感激。謝謝

curl -Ls <git-script-path> | bash -s -- -p admin

這會導致bash從其標準輸入流中讀取 shell 命令,該輸入流連接到curl. -padmin是可作為腳本中的位置參數訪問的兩個參數。--需要 來表示bash執行檔選項的結束。

使用僅執行的單行腳本進行測試script.sh(在單獨的行上輸出其命令行參數,帶引號)。我們將成為您命令的替身:printf '"%s"\n' "$@"``cat script.sh``curl

$ cat script.sh| bash -s -- -p admin
"-p"
"admin"

如果您的腳本需要互動性,則您無法從標準輸入中讀取腳本本身。相反,通過文件名提供腳本:

$ bash <( curl -Ls <git-script-path> ) -p admin

這恰好是您的問題。請注意,這需要目前 shell 理解使用<( ... ).

引用自:https://unix.stackexchange.com/questions/622213