Почему «echo» в / etc / bashrc приводит к зависанию scp?


5

Я копирую каталоги с машины Snow Leopard на машину Tiger, scp -rи по какой-то причине кажется, что последняя строка /etc/bashrc( echo '') Targe (Tiger) машины приводит к зависанию scp. Когда одобрено, это работает как ожидалось.

Почему?

Я никогда не видел такого поведения ни на одной из своих машин Slackware, Ubuntu, Gentoo, SuSE, Mandrake или даже Apple. Является ли это частью недавнего обновления безопасности 10.6? scpдо недавнего времени работал с этой линией, как и ожидалось.

Ответы:


2

Этот выглядит как ваша проблема:

Вы действительно не должны выводить материал в своем профиле, если вы не входите в интерактивном режиме. Похоже, что SCP чувствителен к нему (потенциально, в зависимости от множества факторов, я уверен). Вы можете проверить интерактивность следующим образом:

Текст скопирован для справки:

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

Эта проблема вывода совершенно новая для меня. Более того, фортуна-мод выплевывал состояния из / etc / bashrc с момента рождения fink, и scp никогда не выводил его. Тем не менее, я думаю, что ваш совет мудрый, и я приму его. Спасибо!
Мсэнфорд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.