Как передать да команде sh, например curl URL.sh | ш

Я пытаюсь установить звездолет с помощью одной команды, но когда я запускаю следующую, она запрашивает ввод с клавиатуры. Тогда как я могу передать его «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] 

'-y', должно работать

Murtaza Hussain 11.11.2022 08:54

yes y | curl -sS https://starship.rs/install.sh | sh помогает?

David Ranieri 11.11.2022 09:09

@MurtazaHussain Могу я спросить, куда мне его положить?

Takuya HARA 11.11.2022 09:18

@DavidRanieri Боюсь, что нет, я все еще просил ввода.

Takuya HARA 11.11.2022 09:19
Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
0
4
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете, потому что вы уже перенаправляете curl на sh.

Проверка скрипта показывает, что вы можете запустить его с помощью -y, чтобы избежать интерактивных подсказок, поэтому, вероятно, просто сделайте это.

curl -sS https://starship.rs/install.sh | sh -s -- -y

Параметр -s позволяет передавать параметры сценарию из командной строки sh, а затем -- требуется для отделения параметров sh от параметров, которые вы передаете сценарию.

В общем случае, если скрипт был написан так, что он безоговорочно требует интерактивного ввода-вывода, вам действительно нужно загрузить его в файл, а затем запустить этот файл с перенаправлением.

#!/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 с trap является расширением Bash. Если вы неофициально запускаете это вручную, генерация временного файла по сценарию и связанная с ним ловушка, вероятно, могут быть заменены чем-то более специальным.

Другие вопросы по теме