Мне было любопытно, как я буду выполнять несколько команд с помощью сценария оболочки.
Например, просто чтобы попробовать, я хотел бы иметь возможность подключить .desktop к .sh, который будет запускать все коды обновления, поэтому мне не нужно его печатать. Я знаю, как выполнить одну команду через .sh, а не несколько.
В любом случае?
На самом деле все просто - вам нужно разделить команды. Например, это:
#!/bin/bash
sudo apt-get update
sudo apt-get upgrade
обновит списки пакетов, а затем пакеты . Другая возможность - это (возможно, лучше, поскольку && разрешит выполнение команды upgrade
только в случае успешного завершения update
) :
#!/bin/bash
sudo apt-get update && sudo apt-get upgrade
Это должно запустите команды для обновления списка пакетов, а затем самих пакетов. Его необходимо сохранить в текстовый файл (например, updatescript
в домашнем каталоге). Затем вы можете сделать его исполняемым, запустив:
chmod +x ./updatescript
или щелкнув правой кнопкой мыши файл и сделав его исполняемым в его свойствах:
и запустите его с этим в терминале:
./updatescript
Примечание (я): [1225 3] Доступна опция ( -y
), которую можно использовать с командой upgrade
, поэтому она не выводит запрос перед обновлением пакетов. Перед обновлением пакетов рекомендуется проверить, что делает apt-get
, поскольку он может / сделает что-то глупое или что-то, чего вы не хотите. Дополнительную информацию о подобных параметрах можно найти, запустив man apt-get
.
Это также означает, что для запуска сценария более идеальным вариантом будет использование терминала, поскольку вы можете проверить, что он обновляет, а затем запустите его. Если вам нужен графический интерфейс для запуска обновлений, используйте программный центр, поскольку он для этого предназначен.
Чтобы добавить несколько пунктов к отличному ответу @Wilf,
вы можете запускать команды в параллельном режиме, если хотите по какой-либо причине, например, автозапуск
] для OpenBox может выглядеть так:
#!/bin/bash
nitrogen --restore &
tint2 &
tilda
Это установит фоновое изображение с использованием азота
, запустит панель tint2
и запустит раскрывающуюся консоль в стиле Quake3 tilda
, и все одновременно. Это полезно, если вам не нужно завершать программу перед запуском следующей. Но не apt-get update
и apt-get upgrade
!
Обратите внимание на знак &
в конце каждой строки. Это заставит оболочку выполнить ответвление этого процесса в фоновом режиме и продолжить выполнение.Обратите внимание, чем он отличается от &&
, который по сути является знаком и
, command_1 && command_2
выполнит command_1
и, если он завершится успешно , только затем запустите command_2
, а command_1 & command_2
запустит второе сразу после первого.
Кроме того, вы можете просто складывать команды, чтобы они выполнялись последовательно, например:
#!/bin/bash
apt-get update
apt-get upgrade
Это запустит apt-get upgrade
после того, как apt-get update
будет завершено , но независимо от результата. Таким образом, даже если, например, обновление завершается с сетевой ошибкой, обновление все равно будет выполнено.
Вы также можете сделать это в одной строке, используя знак ;
: apt- получить обновление ; apt-get upgrade
. Опять же, это решение не оптимальное для этих конкретных команд, но оно может пригодиться в других ситуациях.
Одно быстрое заключительное замечание, вы также можете разбить строки, содержащие &&
как например:
command_1 &&
command_2
Это будет то же самое, что и command_1 && command_2
.