Warum führt "echo'' " in /etc/bashrc dazu, dass scp hängt?

Ich kopiere Verzeichnisse von einem Snow Leopard-Rechner auf einen Tiger-Rechner mit scp -rund aus irgendeinem Grund scheint es, dass die letzte Zeile der Zielmaschine (Tiger) /etc/bashrcdazu echo ''führt, dass scp hängen bleibt. Wenn es empfohlen wird, funktioniert es wie erwartet.

Warum?

Ich habe dieses Verhalten noch nie auf einem meiner Slackware-, Ubuntu-, Gentoo-, SuSE-, Mandrake- oder sogar Apple-Rechner gesehen. Ist dies Teil eines aktuellen Sicherheitsupdates für 10.6? scpfunktionierte bis vor kurzem wie erwartet mit dieser Linie.

Antworten (1)

Dieser hier sieht aus wie dein Problem:

Sie sollten wirklich nichts in Ihrem Profil ausgeben, es sei denn, Sie gehen interaktiv hinein. Es scheint, dass SCP empfindlich darauf reagiert (möglicherweise abhängig von vielen Faktoren, da bin ich mir sicher). Sie können die Interaktivität folgendermaßen testen:

Text zum Nachschlagen herauskopiert:

To determine within a startup script whether Bash is running 
interactively or not, examine the variable $PS1; it is unset in non-
interactive shells, and set in interactive shells. Thus:

if [ -z "$PS1" ]; then
        echo This shell is not interactive
else
        echo This shell is interactive
fi

Alternatively, startup scripts may test the value of the `-' special 
parameter. It contains i when the shell is interactive. For example:

case "$-" in
*i*)    echo This shell is interactive ;;
*)  echo This shell is not interactive ;;
esac
Dieses Ausgabeproblem ist mir völlig neu. Darüber hinaus spuckt fortune-mod Vermögen aus /etc/bashrc aus, seit fink geboren wurde, und scp gibt es nie aus. Trotzdem halte ich deinen Rat für klug und werde ihn beherzigen. Danke!