На некоторых хостах некорректно исходят .bash_profile
для неинтерактивных входов типа scp. Сообщения, которые попадают в терминал, могут привести к тому, что scp
будет работать некорректно. Если у вас есть сообщения в вашем .bash_profile
, то это может быть причиной.
Чтобы ваши сообщения о входе в систему, баннер и т.д. по-прежнему отображались при интерактивном входе в систему, а также чтобы вы могли использовать scp
через неинтерактивный логин, добавьте следующее перед любым сообщением, которое будет распечатано в вашем файле .bash_profile
.
# **********If not running interactively, don't do anything more!***********
[-z "$PS1"] && return
Альтернативный код:
[[$- == *i*]] || return
И еще один альтернативный код:
case $- in
*i*) ;;
*) return;;
esac
Который, на мой взгляд, является более длинной версией первого альтернативного кода. На некоторых хостах я обнаружил, что первый код работает некорректно, а второй - некорректно.
Во время неинтерактивного входа scp прервет дальнейшее выполнение .bash_профиля и позволит scp работать, но при входе через ssh отобразит сообщения о вашем входе.
Note: Это также может быть использовано в вашем файле .bashrc
, если вы исходите из .bash_profile
(для $PATH), поэтому при неинтерактивном входе в систему будет исходить только часть сообщений.