我有一個bash腳本,它接受一個參數做這樣的事情:猛砸EVAL引號內
的ssh -t someserver 「SETENV DISPLAY $ 1;在/ usr/bin中/ someprogram」
我怎麼能強迫bash替換$ 1而不是將文字字符「$ 1」作爲顯示變量?
我有一個bash腳本,它接受一個參數做這樣的事情:猛砸EVAL引號內
的ssh -t someserver 「SETENV DISPLAY $ 1;在/ usr/bin中/ someprogram」
我怎麼能強迫bash替換$ 1而不是將文字字符「$ 1」作爲顯示變量?
根據對sehe的回答您的意見,這聽起來像你只是想遠程命令使用本地X顯示器 - 以便程序在遠程服務器上運行(someserver
),但在運行ssh
命令的計算機上顯示。
這可以通過僅僅通過-X
來完成,例如,
ssh -X someserver /usr/bin/someprogram
由於某些原因,這對幾個程序無效,例如evince
。我不確定爲什麼。我很確定evince
是我通過SSH連接轉發時遇到的唯一的應用程序。
如果這不是你想要做的,請解釋。
編輯你知道的
ssh -X ...
ssh -Y ...
它已經支持X轉發開箱?也看看
xhost +
萬一你需要增加對'賓客'的權限。
如果你要轉發非標準X顯示的地址,你總是可以使用
DISPLAY=localhost:3 ssh -XCt [email protected] xterm
獎金:使ssh背景的認證後,加上 '-f'
什麼地方?這應該已經如圖所示。遠程?逃避$:\$
不過,我不知道在哪裏的命令將採取它的參數($ 1)
你確定報價如圖所示?它應該如圖所示工作。 1美元可能沒有你期望的價值嗎? – sehe
看起來應該是這樣,因爲bash在雙引號內執行替換... –
'setenv'只在t?csh中有用,這是否真的是您在遠程端運行的? – tripleee