Linux
使用 curl 將 args 從 git 傳遞給 bash 腳本
我正在尋找將參數傳遞給使用 curl 從 git 獲取的腳本的方法,而我的腳本需要一個參數。
有什麼方法可以將參數傳遞給腳本,如下所示:
bash <(curl -Ls <git-script-path>)
腳本用法:
./script.sh -p admin
. 我試圖提供-p admin
為bash <(curl -Ls <git-script-path>) -p admin
任何幫助將不勝感激。謝謝
curl -Ls <git-script-path> | bash -s -- -p admin
這會導致
bash
從其標準輸入流中讀取 shell 命令,該輸入流連接到curl
.-p
和admin
是可作為腳本中的位置參數訪問的兩個參數。--
需要 來表示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 理解使用
<( ... )
.