2012-06-09 4 views
2

Может ли кто-нибудь объяснить следующее? Когда я использую ssh для выполнения истории удаленно, выход не создается, даже другие удаленные команды производят вывод, и на этом компьютере есть история.История ssh host '| tail 'не производит выход

ssh host 'history | tail' # produces no output 
ssh host 'echo foo | tail' # produces 'foo' as output 
ssh host 
> history | tail # produces expected output 

ответ

4

История не загружается для неинтерактивной оболочки. Вы можете либо tail историю файла (~/.bash_history), либо включить историю и загрузить ее.

set -o history 
history -r 

Полные команды, необходимые, чтобы сделать это с удаленного хоста выглядит следующим образом:

ssh host 'HISTFILE=~/.bash_history; history -r; history' | tail 
+0

Brilliant. Можете ли вы уточнить, что такое «история -r»? Благодарю. –

+1

@GirishRao: 'help history' говорит, что' history -r' читает файл истории и добавляет содержимое в список истории. Вот почему я сказал «загрузить его» в свой ответ. –

+0

Странно: я заметил, что 'ssh -t localhost 'HISTFILE = ~/.bash_history; установить -o history; export HISTTIMEFORMAT ='% F% T '; history -r; history" 'не дает мне правильную метку времени; он просто заполняет текущую временную метку для всех строк - любой способ получить правильное время? – rupert160

Смежные вопросы