Posts tagged ‘bash’

bash: секретцы.

1. Значения для пустых переменных. То есть если переменная уже имеет непустое значение, то будет использовано оно, а если нет — то подставлено значение по умолчанию (перед этим значением — знак «-«: это может быть просто строка, переменная, вызов команды в обратных апострофах).
Например:

kakabba@kakabba:~$ echo "os is ${OSTYPE:-unknown}."
os is linux-gnu.
kakabba@kakabba:~$ echo "os is ${OSTYPE1:-unknown}."
os is a unknown.

OSTYPE — существующая в контексте переменная, а OSTYPE1 — нет.
Еще пример:

#!/bin/bash
gcc_version=${gcc_version:-`gcc -dumpversion`}
other_gcc_version=${other_gcc_version:---version=$gcc_version}
echo $other_gcc_version #--version=4.6

2. В bash можно сделать нечто, похожее на тернарный оператор в плюсах:

[[ $_var1 == $_var2 ]] && _var1="/usr/lib" || _var1="$_var2"

То есть если $_var1 == $_var2, то в _var1 поместить строку «/usr/lib», иначе записать значение _var2.

Декабрь 18, 2012 at 21:03 Оставьте комментарий

Хвост!

Еще одна удобная штука в консоли Linux: использовать tail с ключом -f для наблюдения за логами.

kakabba@jimmi:~$ tail /var/log/mail.log -f

Перед вами будет расти лог в реальном времени. То есть легко держать руку, не побоюсь этого слова, на пульсе.
Выход из этой прелести по ctrl+c

Январь 10, 2012 at 16:11 Оставьте комментарий

bash и его пробелы

Этот пост о моей темноте. Возможно для кого-то это очевидно, для меня — нет. Мне понадобилось написать скрипт даже не баше, а на шелле, в котором должен был быть цикл while. Первый раз пришлось его использовать. Ну я изучила синтаксис, написала скрипт. Не работает. (далее…)

Октябрь 13, 2011 at 16:43 Оставьте комментарий

Sudo, я сказала Sudo!

Интересная штука нашлась: часто бывает введешь команду в Linux, а ей нужны права суперпользователя. Приходится ползти в начало строки и добивать sudo.
Но есть отличная альтернатива. Достаточно просто ввести sudo !! и предыдущая команда выполнится от рута.
Например так:

xxx@yyy:~$ apt-get update
E: Не удалось открыть файл блокировки /var/lib/apt/lists/lock - open (13: Permission denied)
E: Невозможно заблокировать каталог со списками пакетов
xxx@yyy:~$ sudo !!
sudo apt-get update

Август 11, 2011 at 21:36 Оставьте комментарий

Fetchmailrc из passwd

Я использую Fetchmail вместе с postfix relayhost_map, чтобы объединить два аккаунта электронной почты: реальный(например, на gmail) и виртуальный, который обслуживается postfix. Fetchmail собирает письма с реальных аккаунтов, и для каждого нужно указать хост, логин и пароль.
Если такой аккаунт один, то несложно и руками забить, но если их хотя бы 5, то уже становится лениво. Тем более, что один раз я уже подобную работу делала, когда создавала файл passwd для postfix.
(далее…)

Август 11, 2011 at 16:26 Оставьте комментарий