Я использую Ruby MRI 1.8.7, и у меня есть сценарий Net-SSH, который подключается к серверу и редактирует файл .bash_profile. В основном несколько ярлыков псевдонимов добавлены. Пример .bash_profile содержания:Ruby Net/SSH - reload bash_profile
alias test="echo 'test'"
Теперь я не могу использовать эти псевдонимы, пока я не перезагружать с помощью источника .bash_profile .. Проблема заключается в том, что кажется, что я не могу источник .bash_profile через Net-SSH. Это то, что я пытался до сих пор:
ssh.exec!("source .bash_profile")
ssh.exec!("source /root/.bash_profile")
ssh.exec!("bash -c 'source ~/.bash_profile'")
Теперь, на самом деле я даже не нужны псевдонимы в Net-SSH, но я по крайней мере не хочу источник bash_profile вручную на сервере. В чем проблема, и есть ли какие-либо решения?
Вы пытались выполнить команду инлайн с 'source', чтобы посмотреть, что происходит? (например, 'source ~/.bash_profile && test') – fny
да, он отлично работает. вы подразумеваете, что с сеансом Ruby/SSH не должно быть ничего другого? –
Я имел в виду, что вы пытались выполнить эту команду через Ruby/SSH. Возможно, источник не сохраняется между операторами 'ssh.exec!'. – fny