Как вы встраиваете строки в комментарии внутри heredoc?
Это не работает, комментарий не содержит строку IP_ADDR
SSH_UN='user'
IP_ADDR='192.168.1.101'
cat <<"EOF" >> .ssh/config
# VirtualBox (VB) on user's laptop at $IP_ADDR
Host laptopvb
Hostname $IP_ADDR
User $SSH_UN
ForwardAgent yes
EOF
1 ответ
Решение
Удалить двойные кавычки вокруг EOF
:
IP_ADDR='192.168.1.101'
cat <<EOF >> .ssh/config
# VirtualBox (VB) on hobs laptop at $IP_ADDR
Host laptopvb # manually set as a static IP on the VB
Hostname $IP_ADDR
User $SSH_UN
ForwardAgent yes
EOF
Согласно руководству по bash:
The format of here-documents is:
<<[-]word
here-document
delimiter
No parameter expansion, command substitution, arithmetic expansion,
or pathname expansion is performed on word. If any characters in word are quoted,
the delimiter is the result of quote removal on word, and the lines in the
here-document are not expanded. If word is unquoted, all lines of the
here-document are subjected to parameter expansion, command substitution,
and arithmetic expansion.