Sur certains hôtes, ils ne fournissent pas correctement .bash_profile
des noms de connexion non interactifs comme scp. Les messages imprimés sur le terminal peuvent éventuellement entraîner un scp
dysfonctionnement. Si vous avez des messages dans votre .bash_profile
cela peut en être la cause.
Pour que vos messages de connexion, vos bannières, etc., s'affichent toujours lors de connexions interactives et que vous puissiez toujours les utiliser scp
via un nom de connexion non interactif, ajoutez ce qui suit avant tout message pouvant être imprimé dans votre .bash_profile
fichier.
# ********** If not running interactively, don't do anything more! ***********
[ -z "$PS1" ] && return
Le code alternatif est:
[[ $- == *i* ]] || return
Et un autre code alternatif:
case $- in
*i*) ;;
*) return;;
esac
Ce qui, je crois, est la version la plus longue du premier code alternatif. J'ai trouvé sur certains hôtes que le premier code ne fonctionne pas correctement mais que le second fonctionne.
Lors d'une connexion scp non interactive, il interrompra toute exécution ultérieure de .bash_profile et permettra à scp de fonctionner, mais affichera vos messages de connexion lorsque vous vous connecterez via ssh.
Remarque: Ceci peut également être utilisé dans votre .bashrc
fichier si vous le sourcez .bash_profile
(pour $ PATH) afin que seule une partie de celui-ci soit obtenue lors de connexions non interactives.