2014-05-20 47 views
1

我想從遠程服務器上的bash配置文件中刪除一個字,但命令永遠不會出來。從遠程服務器上刪除字符

ssh -X test_server 'sed -e \'s/unalias ls//g\' -i .bash_profile' </dev/null 

不知道我在做什麼錯,請協助。

+0

有時更容易(特別是嵌套報價/雙引號)遠程複製臨時腳本文件並ssh腳本調用(並在刪除後)。不要忘了指定你的environement(像這裏的GNU sed似乎linux或mac,但沒有遠程的規範,假設相同) – NeronLeVelu

回答

1

在shell中不能嵌套單引號,切換到雙引號會給你想要的結果。例如:

$ ssh somehost sh <<< 'echo "Xunalias lsX" | sed -e "s/unalias ls//"' 
XX 
+0

我也試過,以及 sed:-e expression#1,char 1:unknown命令:'''' – Nomad

+0

我想我會建議你將文件複製到你的機器上,修改它,重命名原始文件,將你的新版本複製到目標機器 –

+0

@ user3109806我認爲你仍然試圖逃避雙引號(例如''sed -e \「s/unalias ls // g \」'')?你應該運行的是'ssh test_server'sed -e「s/unalias ls // g」-i .bash_profile'

相關問題