Назначение '&& bash' в команде (не части '&&', 'bash' part)

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

set +o histexpand

или добавить команду в обычную конфигурацию files, т.е. скорее всего .bashrc, чтобы отключить его для всех оболочек.

0
02.07.2017, 21:15
3 ответа

Некоторые программы требуют, чтобы вы вошли в оболочку bash для правильной работы, это может быть причиной использования && bash.

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

2
28.01.2020, 02:25

Инструкции по установке несколько нарушены.

Если бы опубликованный код оболочки был сценарием оболочки, часть && bashбыла бы практически бесполезна, так как она запускала бы интерактивный bashи оставался бы там до тех пор, пока пользователь не выйдет из оболочки с помощью Control-D или exit, затем возобновите выполнение следующих команд с оболочкой текущего пользователя, какой бы она ни была.

Но, как вы написали, ожидается, что пользователь скопирует и вставит код. В этом случае && bashусловно запускает bash, если mkdirзавершается успешно,а затем оставшиеся строки выполняются этим интерпретатором. Все идет нормально.

Первая проблема заключается в том, что происходит в (маловероятном )случае, когда команда mkdirзавершается ошибкой. Интерпретатор bashне выполняется , но все оставшиеся строки , при условии, что весь блок команд оболочки был скопирован/вставлен, все равно будут выполнены . Более того, они будут выполняться любой оболочкой, в которой работает пользователь, поэтому, возможно, той, которая не понимает расширение фигурных скобок. Также будут ошибки со всеми командами, ссылающимися на отсутствующий каталог ~/bin.

Вторая проблема заключается в том, что даже в первом случае(mkdirзавершается успешно ), последовательность команд является фиктивной, поскольку предполагается, что пользователь находится в своем домашнем каталоге при запуске команд, но, конечно, это не обязательно дело.

1
28.01.2020, 02:25

Если директория bin не существовала до и ее создание не удалось, открывается интерактивная оболочка bash, где вы можете работать как хотите....редактировать файл, писать письма бабушке, и скоро. Как только вы выходите из этой оболочки, скрипт продолжает работать, выполняя wget, tar и так далее.

Вот что на самом деле делает этот скрипт . Разумно это или нет, судить не хочу...

0
28.01.2020, 02:25

Теги

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