Показаны сообщения с ярлыком 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, т.к. это в основном символическая ссылка на оболочку по-умолчанию. Пруф-линк не приведу, но мои предпочтения подтверждались в старинных манускриптах по Юниксу.
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-скрипта:
2. Далее в файле ~/.subversion/config добавляем/заменяем строку:
Ну и в принципе все. Делаем
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
Подписаться на:
Сообщения (Atom)