На некоторых хостах они неправильно .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_profile и позволит scp работать, но при входе через ssh будут отображаться ваши сообщения для входа.
Примечание. Это также может быть использовано в вашем .bashrc
файле, если вы используете его .bash_profile
для (для $ PATH), так что только часть его создается при неинтерактивных входах в систему.