Posts tagged ‘Linux’

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 Оставьте комментарий

rdp-клиент Ubuntu

Очень рекомендую воспользоваться не rdesktop, а GTK+клиентом remmina (очень выгодно — и морда симпатичная, и сам клиент не rdesktop, а freerdp). К тому же есть в репозитории Ubuntu.

Декабрь 6, 2011 at 17:14 Оставьте комментарий

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 Оставьте комментарий