Некоторые вопросы Bash для новичка

Смотрите на https://support.mozilla.org/en-US/kb/update-firefox-latest-version

, чтобы попытаться обновить Firefox - я думаю, что это будет другим полезным способом решить эту небольшую проблему. Та ссылка описывает способ (вручную) обновить Firefox намного лучше, чем я мог сделать - но так или иначе †¦ я попытаюсь дать объяснение один: при выборе Help> About Firefox в, он - меню, там должен быть отображен кнопка, дающая возможность обновить FF вручную, если существует действительно доступное обновление. Другими словами: если не будет ни одного доступного в то время, то кнопка не будет отображена. Насколько я помню, Firefox должен даже отобразить сообщение, упомянув доступное обновление отдельно - если там действительно одно доступное. Я был на Ubuntu 8.04 на другом компьютере, таким образом, управление пакетом на той машине больше не работало - но я получил довольно новый Firefox от где-то в другом месте и смог обновить его способ, которым я описал прежде.

0
задан 15.04.2020, 04:41

3 ответа

  1. Чтобы сделать отступ в коде Gedit, нажмите клавишу Tab и Shift - Tab для отмены. Вся необходимая информация и список горячих клавиш находятся в разделе документации Gnome для gedit
  2. Команда : - это встроенная команда Bash, которая ничего не делает, кроме return 0 ( правда); но в этом случае служит для оценки расширения параметра ${VAR:=VALUE}, которое присваивает VALUE - $VAR, только если оно не существует. Если $VAR (в вашем случае $TEMPDIR) уже имеет значение, оно не изменяется. Это эквивалентно конструкции:

    [[ -z "$TEMPDIR" ]] && TEMPDIR=/tmp
    

    , т. Е. «Если $TEMPDIR пусто, оцените команду справа (назначьте /tmp - TEMPDIR)».

  3. Команда [[ является встроенной командой Bash, в то время как [ является исполняемой командой в /usr/bin/[ (а также ее эквивалентом /usr/bin/test). Команда [[ имеет несколько плюсов и минусов против [ или test.

    Плюсы: это встроенная команда, поэтому она быстрее и имеет больше функциональных возможностей, таких как проверка и анализ регулярных выражений (помните: man bash - ваш друг).

    Минусы: он не переносим, ​​так как в каждом из интерпретаторов оболочки, где он существует, имеются разные операторы.

  4. Выражение $?, как гласит терминология в man bash, является специальным параметром, который разрешает или «расширяет» до состояния выхода последней команды. Если последняя команда была успешной, она должна вернуть true (0 для Bash), поэтому $? будет числовым нулем; в других случаях $? будет числом, возвращаемым командой. Например, эта командная строка ls / echo покажет значение ошибки, возвращенное ls, пытающимся найти файл an-nonexistent-file.txt:

    ls an-nonexistent-file-txt ; echo $?
    

Bash в качестве программирования язык имеет много причуд и особенностей; изучение руководства по Bash - путь к успеху.

[Извините за очевидный повторяющийся ответ, но остальные были неспецифичными и не отвечали на все вопросы в том виде, в котором они были заданы (не означает оскорбление; я узнал там пару несвязанных вещей).]

0
ответ дан 15.04.2020, 04:41

Да, у вас есть отступ в Gedit. Откройте gedit и в Edit-> Preferences вы можете иметь опцию автоматического отступа. enter image description here

Что касается второго пункта, то, как он говорит, предполагается, что TEMPDIR находится в /tmp месте.

0
ответ дан 15.04.2020, 04:42
  1. Я использую vim для написания сценариев оболочки.

  2. ${TEMPDIR} расширится до значения переменной с именем TEMPDIR. ${TEMPDIR:=/tmp} будет делать то же самое, но если оно пустое (или не установлено), значение / tmp будет присвоено TEMPDIR, а также расширено.

    Наличие ${TEMPDIR:=/tmp} одного в строке приведет к его изменению, например, на. /tmp, который попытается выполнить /tmp как команду (что, очевидно, не удастся, поскольку вы не можете выполнить каталог). Вот почему используется команда : (null). Команда null игнорирует все входные данные, все аргументы и абсолютно ничего не делает. Запустите help :, чтобы увидеть описание этой встроенной команды.

    См. http://mywiki.wooledge.org/BashFAQ/073 Для различных вещей, которые вы можете сделать с расширением параметра.

  3. [[ "$line2" > "$Line1" ]] возвращает true, если line2 сортируется после line1 (как strcmp в C).

    [(команда «test») и [[(команда «new test»)) используются для оценки выражений. [[работает только в оболочках Bash, Zsh и Korn и является более мощным; [и тест доступны в оболочках POSIX.

    См. http://mywiki.wooledge.org/BashFAQ/031 для определения различия между командой [ и ключевым словом [[.

  4. ? - это специальный параметр , который содержит состояние выхода последней выполненной команды. $? расширяет значение этого параметра.

Кстати, если это пример из вашей книги, я бы сказал, что это плохой источник для изучения bash. Я рекомендую прочитать http://mywiki.wooledge.org/BashGuide , который также учит хорошим практикам.

0
ответ дан 15.04.2020, 04:43

Теги

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