Auf einigen Hosts geben sie .bash_profile
für nicht interaktive Anmeldungen wie scp fälschlicherweise als Quelle an. Meldungen, die auf dem Terminal ausgegeben werden, können möglicherweise dazu führen, dass scp
nicht korrekt funktioniert. Wenn Sie Meldungen in Ihrem .bash_profile
haben, kann dies die Ursache sein.
Damit Ihre Anmeldemeldungen, Banner usw. auch bei interaktiven Anmeldungen angezeigt werden und Sie scp
trotzdem über eine nicht-interaktive Anmeldung verwenden können, fügen Sie Folgendes vor jeder Meldung ein, die in Ihrer .bash_profile
-Datei ausgedruckt werden würde.
# **********If not running interactively, don't do anything more!***********
[-z "$PS1"] && return
Der alternative Code ist:
[[$- == *i*]] || return
Und ein weiterer alternativer Code:
case $- in
*i*) ;;
*) return;;
esac
, der meiner Meinung nach die längere Version des ersten alternativen Codes ist. Ich habe festgestellt, dass auf einigen Hosts der erste Code nicht korrekt funktioniert, aber der zweite schon.
Während einer nicht-interaktiven scp-Anmeldung bricht er die weitere Ausführung von .bash_profile ab und lässt scp funktionieren, zeigt aber Ihre Anmeldemeldungen an, wenn Sie sich per ssh anmelden.
Hinweis: Dies kann auch in Ihrer .bashrc
-Datei verwendet werden, wenn Sie sie aus .bash_profile
(für $PATH) beziehen, sodass nur ein Teil davon während nicht-interaktiver Anmeldungen bezogen wird.