Что означает синтаксис вертикальной черты и конечного тире? [дубликат]

На этот вопрос уже есть ответ здесь:

Отказ от ответственности. Я давний пользователь Windows и только начинаю разбираться в парадигме Linux. Будучи взволнованным, я понимаю, что мои формулировки могут быть неудачно выбраны из-за незнания.

Я получил ответ , содержание которого включало следующую строку, которую мне нужна помощь в интерпретации (после некоторого времени в поисковой системе у меня есть довольно хорошее предположение, но я хотел бы сделать его более надежным).

curl -sL https://blabla | sudo -E bash -

Насколько я понимаю, мы сначала создаем веб-вызов по URL-адресу blabla , а затем (здесь всплывает волшебный канал) выполняем команду с повышенными привилегиями администратора, чтобы открыть новый экземпляр окна терминала.

Однако, когда я пытаюсь переварить команду, я узнаю, что она эквивалентна следующей последовательности.

curl --silent --location https://blabla
sudo -E bash -

Вопрос 1: Правильно ли это понято?

Далее я попытался узнать, что такое переключатели для второй строки, и использовал оператор следующим образом.

man bash | sed -n '/-E/,+1p'

Однако я не могу понять, что означает " -E " (это - пустой или - или, может быть, - ошибка ) и застряли на интерпретации. Кроме того, я не могу понять, что делает один символ тире, и я не уверен, как найти его в руководстве, используя приведенное выше утверждение.

Вопрос 2: Как найти подробный синтаксис переключателей?

Вопрос 3: Что означает тире без переключателя?

7
задан 10 September 2018 в 12:03

1 ответ

Команда канала (|) средства берут вывод команды слева и передают его в как вход к команде справа. Так, Вы почти корректны в своем понимании какой

curl -sL https://blabla | sudo -E bash -

делает. То, что Вы пропускаете, получает вывод первой команды и передает это во вторую команду. Что Вы имеете выше потребностей быть чем-то как следующее:

curl --silent --location https://blabla >/tmp/output
sudo -E bash - </tmp/output

Тире (-) в конце второй команды просто говорит удару читать в стандарте в и обрабатывать его. Так,

sudo -E bash - </tmp/output

эквивалентно

sudo -E bash </tmp/output

"-E" опция на самом деле связана с sudo, не с ударом. Выполнение команды:

man sudo

шоу, что-E сохраняет среду.

Надежда это помогает разъяснить некоторые вещи для Вас.

Удача с изучением Linux!:)

9
ответ дан 23 November 2019 в 06:28

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

Похожие вопросы: