SSH в удаленную оболочку, выполните команду 'source' и оставайтесь в удаленной оболочке

Это могло бы быть неуклюже, но...

     for PERSON in $(who | grep -v USER | grep -v load | awk '{print $1}'); 
     do echo $PERSON
     ps -u $PERSON
     done
4
13.08.2015, 15:04
1 ответ

Используйте новый исходный файл, например /home/user/.rcforssh

 #rc for ssh
 . /home/user/.bashrc
 . /home/user/venv/bin/activate  #or whichever location

и войдите с помощью

ssh -t user@host "cd /path/to/dir ; /bin/bash --rcfile /home/user/.rcforssh"

Примечание: исходный код не является POSIX, а . есть.


ОБНОВЛЕНИЕ после обсуждения, определяющего потребности OP:

Для создания и удаления измененного исходного файла rcforssh на лету можно использовать:

ssh -t user@host "cd /path/to/dir ; echo '. ~/.bashrc ; . s ; rm rcforssh' > rcforssh ; /bin/bash --rcfile rcforssh"

т.е. создание исходного файла с помощью команды echo и добавление удаления в указанный файл.

5
27.01.2020, 20:53

Теги

Похожие вопросы