На деяких хостах вони неправильно подають джерела .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), тому лише частина його отримується під час неінтерактивного входу.