Каждый раз, когда мне нужно написать небольшой скрипт bash, включающий операторы if, проверку пустых переменных и несуществующих файлов и т. д., я ловлю себя на том, что ищу в Google какое-нибудь простое руководство или инструкцию по bash.
Зачастую они слишком длинные и сложные, чтобы быстро ответить на интересующий меня вопрос.
Итак, я подумал, что должна быть какая-то команда или страница руководства, которая охватывает базовый синтаксис bash (для вещей, таких как операторы if, проверки на пустые переменные, несуществующие файлы и т. д.) в краткой и доступной форме. Я уверен, что я просто не нашел команду (man bash, похоже, не подходит).
Где я могу это найти?
решение1
man bash
является каноническим справочником Bash.help help
дает вам справку поhelp
встроенным функциям Bash и о том, как он выдает вам краткие справочные сообщения о других встроенных функциях Bash, таких какhelp for
.- Вики Грега— лучшее место, где можно найти краткие, лаконичные и иногда даже занимательные справочные материалы практически по всем аспектам Bash.
- Если вам нужен быстрый способ поиска синтаксиса, вы можетеконтроль версий
.bash_history
. Слишком много команд, различных синтаксисов параметров,sed
шумаawk
на линии и прочего, чтобы когда-либо запомнить все это, поэтому приятно иметь «хорошо ухоженный» личный справочник стегичтобы посмотреть вверх.
решение2
Так как естьмного таких вещей в сети, вот вам предложение; я использую это для самых разных целей.
Создайте каталог $HOME/notes
. Добавьте подпапку bash
. Если у вас нет $HOME/bin
, создайте ее и добавьте в свой путь любым удобным для вас способом (например: в~/.bashrc
). Затем поместите туда простой скрипт cmdref.sh
:
#!/bin/bash
if [ -z "$CMREF_DIR" ]; then
CMREF_DIR="$HOME/notes"
fi
cat "$CMREF_DIR/${1}/${2}.txt"
Для удобства создайте символическую ссылку ln -s ~/bin/cmdref.sh ~/bin/cmdref
; мне нравится делать это, чтобы можно было редактировать cmdref.sh
исходный код, а редактор все равно распознавал тип файла по суффиксу.
Копируйте и вставляйте что угодно в различные файлы ~/notes/bash
— например, у вас может быть файл arrays.txt
, loops.txt
и т. д. Пока это только для вашего личного использования, вы не нарушаете авторские права.
Теперь вы можете использовать это из командной строки, например: cmdref bash arrays
и эта шпаргалка будет выведена на консоль. Обратите внимание, что хотя файлы .txt
(опять же, использование соответствующих суффиксов полезно для редакторов, файловых браузеров и т. д.) вы не должны использовать, cmdref bash arrays.txt
так как они добавлены cmdref.sh
(единственное, что делает скрипт, это преобразует пути и добавляет суффикс).
решение3
man bash
охватывает все аспекты синтаксиса bash, например, для if statements
, string is zero
и non-existent files
, просто найдите (нажмите /
клавишу и введите следующее) CONDITIONAL EXPRESSIONS
.