Показаны сообщения с ярлыком bash. Показать все сообщения
Показаны сообщения с ярлыком bash. Показать все сообщения

22 дек. 2015 г.

Пакетный whois для проверки нескольких зон

Пульнул свой скриптик для проверки скопом доступности вебдомена в нескольких зонах на гитхаб: https://github.com/RettPop/wwhois. You are welcome.

25 дек. 2012 г.

MacOS: установка pkg-файлов из командной строки

Установка pkg-файла из клиандной строки:
 sudo installer -pkg filename.pkg -target /

25 июл. 2012 г.

Bash, echo "1\n2" игнорирует "\n"

Столкнулся с тем, что Bash-скрипт не хочет преобразовывать символ "\n" в символ перевода строки. Команда
rettpop@host$ echo "Line1\nLine2"
Line1\nLine2

так и выводится. Оказалось, что в заголовке скрипта исполнителем прописан имеено Bash:
#!/bin/bash

Заменил эту строку на
 #!/bin/sh
 и все стало на свои места.
rettpop@host$ echo "Line1\nLine2"
Line1 Line2

Вообще, рекомендуется в шелл-скриптах *x-систем указывать исполнителем именно /bin/sh, т.к. это в основном символическая ссылка на оболочку по-умолчанию. Пруф-линк не приведу, но мои предпочтения подтверждались в старинных манускриптах по Юниксу.

6 июн. 2012 г.

*x. svn + vimdiff = тру!

Небольшое описание настройки SVN с тем, чтобы дефолтным менеджером сравнения использовался трушный vimdiff (специальный режим работы vim). У SVN есть команда diff, которая сравнивает указанный файл с его предыдущими ревизиями - по умолчанию с предыдущей. И, опять-таки по умолчанию, она выводит список различий в довольно таки неудобочитаемом формате. Для использования внешнего менеджера различий нужно указать в командной строке модификатор --diff-cmd <команда запуска менеджера>, либо прописать <команда запуска менеджера> в файле ~/.subversion/config в параметре diff-cmd. Но не все так просто. SVN в дополнение к именам файлов передает менеджеру еще 5 параметров. При брутальном указании vimdiff он начинает ругаться на несуществующие файлы и отсутствующие команды. Для обхода этого используем unix-way - скрипты. Итаг:

1. создаем следующий файл bash-скрипта:
#!/bin/sh

# Configure your favorite diff program here.
VIMDIFFCMD="/usr/bin/vimdiff"

# Subversion provides the paths we need as the sixth and seventh
# parameters.
LEFT=${6}
RIGHT=${7}

# Call the diff command (change the following line to make sense for your merge program).
$VIMDIFFCMD "$LEFT" "$RIGHT"

называем его как-то типа svndiff.sh, устанавливаем права доступа для выполнения
chmod +x svndiff.sh
и кладем где-то в $PATH - можно в домашней директории, можно в /usr/local/bin - куда руки дотянутся.

2.  Далее в файле ~/.subversion/config добавляем/заменяем строку:
diff-cmd = svndiff.sh

Ну и в принципе все. Делаем
svn diff <filename>
и пользуемся правильными инструментами.

3 февр. 2012 г.

Linux. Однострочники

Сделать что-то с файлами в текущей директории:
for f in *; do {do_any_command_with_} $f; {do_one_more_command_with_} $f; {do_one_extra_command_with_} $f; done
И вариант с циклом по конечной последовательности индексов:
for ((i=1;i<=10;++i)); do echo $i; done