我正在嘗試通過單個命令安裝 starship,但是當我運行以下命令時,它會詢問鍵輸入。那么我怎樣才能在不輸入的情況下自動傳遞“y”呢?我相信yes
命令可能會有所幫助,但不知道在這種情況下我該如何使用。
$ curl -sS https://starship.rs/install.sh | sh
Configuration
> Bin directory: /usr/local/bin
> Platform: unknown-linux-musl
> Arch: aarch64
> Tarball URL: https://github.com/starship/starship/releases/latest/download/starship-aarch64-unknown-linux-musl.tar.gz
? Install Starship latest to /usr/local/bin? [y/N]
uj5u.com熱心網友回復:
你不能,因為你已經重定向curl
到sh
.
檢查腳本表明您可以運行它-y
以避免互動式提示,所以可能只是這樣做。
curl -sS https://starship.rs/install.sh | sh -s -- -y
該-s
選項允許您sh
從命令列將選項傳遞給腳本,--
然后需要將sh
選項與傳遞給腳本的選項分開。
在一般情況下,如果腳本被撰寫為無條件地需要互動式 I/O,那么您確實需要將其下載到檔案中,然后使用重定向運行該檔案。
#!/bin/bash
dest=$(mktemp -t) || exit
trap 'rm -f "$dest"' ERR EXIT HUP INT TERM
curl -sS https://starship.rs/install.sh >"$dest"
yes | sh "$dest"
ERR
和EXIT
with的使用trap
是 Bash 擴展。如果您非正式地手動運行它,臨時檔案的腳本生成和相關的陷阱可能會被更臨時的東西替換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532836.html
標籤:重击
下一篇:wget的單行bash腳本,重試