Linux

通過 ssh 在 linux 中設置環境變數

  • December 22, 2021

我正在處理三個不同的問題,因此我將原始碼複製到了三個不同的目錄中。

1) /nobackup/vivek/dev1/<source_code>..
2) /nobackup/vivek/dev2/<source_code>..
3) /nobackup/vivek/dev3/<source_code>..

我在.bashrc文件中為幾個模組創建了幾個別名,以便我可以快速跳轉到它們。我使用了名為的環境變數,CDR其值可以是dev1dev2或者dev3取決於我正在處理的問題和目錄。

.bashrc我的文件中的別名之一範例

alias acl='cd /nobackup/vivek/$CDR/<source_code>../acl'

現在我必須手動更改環境變數的值。例如,如果我想處理問題號。3 然後我必須將環境變數導出CDRdev3.

export CDR=dev3. 

因為對於問​​題沒有。3,我應該在dev3文件夾下,即/nobackup/vivek/dev3/<source_code>..

如果我正在處理問題號,則類似。1 或 2 我必須手動將環境變數導出到dev1dev2

export CDR=dev1 or export CDR=dev2

我想CDR在 ssh 本身的時候設置環境變數。我試過下面的命令來完成那個

ssh -t vgagiot@122.11.33.21 'export CDR=dev1'
or
ssh -t vgagiot@122.11.33.21 'export CDR=dev2'

當我執行上述 ssh 命令時,只要我輸入密碼,我的連接就會終止。

vgagiot@122.11.33.21 的密碼:

與 122.11.33.21 的連接已關閉。

任何人都可以在這裡幫助我。我不確定為什麼我的連接會被終止。有沒有其他方法可以在登錄時設置我的環境變數。

您想啟動bash(或您喜歡的 shell) - 最好作為登錄 shell,以確保您的標準配置文件、rc 文件等也被載入:

ssh -t user@server "export var=VALUE ; bash -l"

或者正如@they 所指出的,較短的符號

ssh -t user@server "var=VALUE bash -l"

也會這樣做。

引用自:https://unix.stackexchange.com/questions/683401