phd_ru: (Default)
Коллеги, кто объяснит разницу:

$ bash -c 'echo C:\\Data\\2022-01-01\\'
C:\Data\2022-01-01\

$ dash -c 'echo C:\\Data\\2022-01-01\\'
C:\Data┌2-01-01\


Ну т.е. понятно, что это \202, но как его отучить, и научить понимать \\ ?

На одном рабочем сервере я заметил, что /bin/sh у меня /bin/bash, а я люблю, чтобы был /bin/dash во избежание башизмов. Ну и заменил. Внезапно сломался shell-скрипт.

Upd. Вот так: $ /bin/echo 'C:\\Data\\2022-01-01\\'
C:\\Data\\2022-01-01\\


Upd2. Сломался ещё один скрипт. В dash не работает описание функции function f() {} — слово function пришлось убрать. Чистка башизмов. :-)

X-Post в ЖЖ.
phd_ru: (Default)
Я дозрел, наконец, начать запускать screen автоматом на удалённых серверах (пока сам, без сына). Начал отсюда, благо там эта проблема уже разжёвана. И быстро наткнулся, что тамошнее решение мне надо допиливать в самую неожиданную сторону.

Тут же выяснилось, что fix_ssh_auth_sock мне не нужен совсем, у меня этот сокет и так зафиксирован, благо я пользуюсь не ssh-agent, а gpg-agent, и сокет у меня ~/.gnupg/S.gpg-agent.ssh.

Далее, if [ -n "$SSH_CONNECTION" ]; then exec screen -xRR; fi. Проблема оказалась в том, что bash выполняет .profile и в интерактивном, и в неинтерактивном шеллах, а в неинтерактивном screen совсем не нужен. Например, в ssh -t host command, или когда ssh используется как транспорт для git или rsync. Пришлось добавить в .profile проверки на интерактивность. В результате хвост моего .profile стал выглядеть так:

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return ;;
esac

# Stop if non-interactive shell
[ -z "$PS1" ] && return

if [ -n "$SSH_CONNECTION" -a -z "$STY" -a -t 0 ] &&
   which screen >/dev/null 2>&1
then
   exec screen -xRR -S default
fi

Полностью можно посмотреть в https://phdru.name/Software/dotfiles/ и https://git.phdru.name/dotfiles.git/

Upd. Я вернул прежний .profile, т.е. удалил запуск screen. Вместо этого я делаю запуск screen вместе с терминалом и ssh:

rxvt-unicode -e ssh -t remote_host exec screen -xRR -S default

X-Post: ЖЖ
phd_ru: (pic#4106691)
Давно надо было ansible освоить. Сейчас бы уже имел два десятка пьес и сотню ролей. Навёрстываю

Для тренировки мне понадобилось уметь в VirtualBox создавать и уничтожать тестовые виртуалки со страшной силой. Пришлось освоить VBoxManage.

Upd. Заодно нашёл неплохой bash completion.
phd_ru: (Linux)
Я обычно пользуюсь xterm'ом (точнее, urxvt) со светло-серым фоном. Но по разным причинам я время от времени запускаю терминал с чёрным фоном — и на локальной машине, и для хождения на некоторые удалённые. И на чёрном фоне очень неудобно читать man. Пришлось пойти в ИНет, найти, что и как настроить. И настроить по своему вкусу.

August 2025

S M T W T F S
     12
3456 7 89
1011 1213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 14th, 2025 02:46 am
Powered by Dreamwidth Studios