[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: