Re: tmux на локальной машине
Ivan Shmakov -> debian-russian@lists.debian.org @ Fri, 14 Jul 2017 20:00:32 +0000:
>> zsh% cat ~/etc/bin/ssh
>> #!/bin/sh
>> [ -n "$STY" ] && [ -f "$HOME/bin/fixssh" ] && . "$HOME/bin/fixssh"
>> exec /usr/bin/$(basename $0) "$@"
> Откуда такая нелюбовь к содержащим пробелы именам файлов
> (в частности: $HOME)?
> exec /usr/bin/"${0##*/}" "$@"
Звыняй, малость на коленке писалось. Боюсь, что еще на телефоне, там
экран маленький (физически). Там и не такое может быть...
>> zsh% cat ~/etc/bin/grabssh
>> #!/bin/sh
>> [ -z "$STY" ] || exit 1
>> [ -d $HOME/bin ] || mkdir $HOME/bin
> Аналогично. И более того.
> [ -d "$HOME"/bin ] || mkdir -- "$HOME"/bin
> Вообще говоря, я следую весьма простому правилу: $ в "", кроме
> случаев, когда /требуется/ деление на слова.
>> SSHVARS="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY"
>> for x in ${SSHVARS} ; do
>> (eval echo $x=\$$x) | sed 's/=/="/
>> s/$/"/
>> s/^/export /'
> Bash позволил бы обойтись без eval ("${x}=${!x}"), но, похоже,
> POSIX такую подстановку не регламентирует.
> … Однако вполне можно обойтись без Sed:
> eval echo export "$x"=\\\'\${"$x"//\\\'/\\\'\\\\\\\'\\\'}\\\'
Ой... Спасибо, я лучше sed. То, что написано у меня, я хотя бы прочесть
в состоянии...
Reply to: