Bash - выполнение команд в текущей оболочке

Вам нужно использовать Synaptic Package Manager (уже доступный в Ubuntu), чтобы Lock версию конкретных пакетов. Поэтому пакеты не будут предлагаться для обновления. Вам нужно будет заблокировать каждый отдельный пакет в вашем списке.

1
задан 1 April 2014 в 16:00

2 ответа

Это потому, что вы не завершаете вторую строку: { cmd1; cmd2; } верна. Точка с запятой означает «конец команды».

8
ответ дан 24 May 2018 в 10:10
  • 1
    Вы правы, спасибо (может быть, книга использует старый формат). Но как возобновить оболочку, если команды выполняются внутри нее? Разве оболочка вызывает fork? – user3122885 1 April 2014 в 16:07
  • 2
    Оболочка будет заблокирована до завершения команды. Это действительно хорошая причина для использования групп. Например, при добавлении PPA вы должны сначала добавить информацию о репозитории, затем импортировать ключи, а затем обновить свой кеш и затем установить. Если вы вставьте его в группу, то все будет работать по порядку. Если вы этого не сделаете, вам придется вводить снова, потому что оболочка не может получить ваш вход. – Jo-Erlend Schinstad 1 April 2014 в 16:24

Встроенная функция help может быть полезна даже для ключевого слова {. Из help -m {:

NAME
    { ... } - Group commands as a unit.

SYNOPSIS
    { COMMANDS ; }

Таким образом, точка с запятой (;) является обязательной после каждой команды.

3
ответ дан 24 May 2018 в 10:10

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

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