Na niektórych hostach niepoprawnie podają źródło .bash_profile
dla nieinteraktywnych logowań, takich jak scp. Wiadomości, które są drukowane do terminala mogą powodować, że scp
nie działa poprawnie. Jeśli masz wiadomości w swoim .bash_profile
, może to być przyczyną.
Aby nadal mieć wyświetlane komunikaty logowania, baner, itp. przy interaktywnym logowaniu i nadal móc używać scp
przy nieinteraktywnym logowaniu, dodaj poniższe przed każdą wiadomością, która byłaby drukowana w pliku .bash_profile
.
# **********If not running interactively, don't do anything more!***********
[-z "$PS1"] && return
Alternatywny kod to:
[[$- == *i*]] || return
I jeszcze jeden alternatywny kod:
case $- in
*i*) ;;
*) return;;
esac
Który moim zdaniem jest dłuższą wersją pierwszego alternatywnego kodu. Odkryłem, że na niektórych hostach pierwszy kod nie działa poprawnie, ale drugi tak.
Podczas nieinteraktywnego logowania scp przerwie dalsze wykonywanie pliku .bash_profile i pozwoli na działanie scp, ale wyświetli komunikaty logowania, gdy logujesz się przez ssh.
Uwaga: To może być również użyte w twoim pliku .bashrc
, jeśli umieścisz go w źródle .bash_profile
(dla $PATH), tak aby tylko jego część była pobierana podczas nieinteraktywnych logowań.