Как эффективно использовать сценарии bash (разные затраты на восстановление и хорошие привычки)?

Это один из самых актуальных вопросов. Как эффективно писать сценарий? Каковы плохие пути и каковы хорошие пути? Я знаю кое-что, что я укажу здесь. Если кто-то знает о чем-то другом, добросердечно оставляйте комментарий для него. Этот вопрос был задан, чтобы узнать о лучших практиках. Это очень сложно для Google, и всегда все вещи не появляются в одном и том же месте. Следовательно, этот вопрос был задан всем вам опытным парням. Я сам пытаюсь изучить эти вещи. Следовательно, я думаю, что любые комментарии / ответы, которые вы, ребята, предоставляете здесь, будут очень полезны для меня и для таких людей, как я. Заранее спасибо .

  • Почему я не могу применить этот скрипт к файлам не в моем текущем каталоге?
  • CasperJS и PHP In Cron Job не могут открывать файлы, отлично работают при запуске Manualy
  • сценарий оболочки для перемещения выбранных файлов из одного каталога в другой
  • Чтение нескольких записей из входного файла
  • Проблемы при разметке eMMC с использованием sfdisk
  • Регулярное совпадение в ksh
  • В сценарии Bash в (set -x) не отображается команда «cat». (его содержание)
  • Динамическая переменная в скрипте KornShell
  • One Solution collect form web for “Как эффективно использовать сценарии bash (разные затраты на восстановление и хорошие привычки)?”

    1. Нет необходимости определять деревья каталогов индивидуально:

    Плохой способ :

     ~ $ mkdir tmp ~ $ cd tmp ~/tmp $ mkdir a ~/tmp $ cd a ~/tmp/a $ mkdir b ~/tmp/a $ cd b ~/tmp/a/b/ $ mkdir c ~/tmp/a/b/ $ cd c ~/tmp/a/b/c $ 

    Хороший способ :

     ~ $ mkdir -p tmp/a/b/c 

    2. Архивирование:

    Иногда я видел, как люди перемещают любой tar как a.tar в другой каталог, который, оказывается, является каталогом, в котором они хотят извлечь архив. Но это не нужно, поскольку здесь можно использовать опцию -C, чтобы указать каталог для этой цели.

     ~ $ tar xvf -C tmp/a/b/c newarc.tar.gz 

    3. Важность операторов управления:

    Предположим, что есть две команды, но только если первая команда запускается, то вторая должна выполняться, иначе вторая команда будет запущена. Итак, здесь должна быть выполнена команда, только если другая команда возвращает нулевой статус выхода.

    Пример :

     ~ $ cd tmp/a/b/c && tar xvf ~/archive.tar 

    В приведенном выше примере содержимое архива необходимо извлечь в каталоге: c, но только в том случае, если каталог существует. Если каталог не существует, команда tar не запускается, поэтому ничего не извлекается.

    Linux и Unix - лучшая ОС в мире.