Начальная загрузка к однопользовательскому режиму путем добавления '1' (без кавычек) к командной строке ядра GRUB, поместите в черный список nouveau и перезагрузку.
Да, есть большой разница. &&
- это короткое замыкание , поэтому последующая команда будет выполняться только в том случае, если предыдущая вернулась с кодом выхода 0
.
выражение1
&&
выражение2Истинно, если и выражение1, и выражение2 истинны.
С другой стороны. , сценарий, содержащий
expression1
expression2
, выполнит второе выражение, даже если первое не удастся. (Если вы не указали сценарий для выхода при ошибке, указав set -e
.)
РЕДАКТИРОВАТЬ: Относительно вашего комментария, совпадает ли:
command1; command2
с:
command1
command2
Ответ обычно .Bash анализирует весь блок операторов, прежде чем оценивать его. А; не вызывает оценку предыдущей команды. Если бы предыдущая команда повлияла на то, как будет анализироваться следующая, то вы заметили бы разницу.
Рассмотрим файл, содержащий псевдонимы, назовем его псевдонимом
с записью:
alias f="echo foo"
Теперь рассмотрим сценарий, содержащий:
shopt -s expand_aliases
source ./alias
f
и еще один, содержащий:
shopt -s expand_aliases; source ./alias; f
, тогда вы можете подумать, что оба даст такой же результат.
Ответ - НЕТ. Первый будет выдавать foo
, но второй сообщит:
... f: command not found
Чтобы уточнить, проблема не в expand_aliases
. Проблема возникает из-за того, что утверждение типа:
alias f="echo foo"; f
будет проанализировано за один раз. Оболочка на самом деле не знает, что такое f
, это заставляет синтаксический анализатор подавляться.
Еще одно отличие от упомянутого заключается в том, что ваш сценарий оболочки выполняется в отдельной оболочке, поэтому любые изменения в среде не распространяются. Например, если вы введете свою интерактивную оболочку
test -f foo && file=foo || file=other
, тогда ваша интерактивная оболочка будет содержать переменную file
(которую вы можете прочитать с помощью $ file
), содержащую foo
], если файл foo существует и является обычным файлом, и other
в противном случае. Теперь, если вы поместите то же самое в сценарий оболочки и вызовете его из интерактивной оболочки, тогда переменная file
в вашей интерактивной оболочке не будет установлена (но, конечно, внутри вашего сценария оболочки она будет установлена, поэтому вы можете использовать его в дальнейших командах).
Да, &&
- это условие. Задняя команда будет запущена только в том случае, если предыдущая вернет 0
(завершится без ошибки). С другой стороны, ваш скрипт не имеет этого элемента управления, поэтому, если, например, wget завершается ошибкой, он продолжит попытку разархивировать и ничего не переместить ..
Онлайнер для вашего скрипта:
wget http://something.com ; unzip something ; mv -f something /home/poney/