我想從遠程服務器上的bash配置文件中刪除一個字,但命令永遠不會出來。從遠程服務器上刪除字符
ssh -X test_server 'sed -e \'s/unalias ls//g\' -i .bash_profile' </dev/null
不知道我在做什麼錯,請協助。
我想從遠程服務器上的bash配置文件中刪除一個字,但命令永遠不會出來。從遠程服務器上刪除字符
ssh -X test_server 'sed -e \'s/unalias ls//g\' -i .bash_profile' </dev/null
不知道我在做什麼錯,請協助。
在shell中不能嵌套單引號,切換到雙引號會給你想要的結果。例如:
$ ssh somehost sh <<< 'echo "Xunalias lsX" | sed -e "s/unalias ls//"'
XX
我也試過,以及 sed:-e expression#1,char 1:unknown命令:'''' – Nomad
我想我會建議你將文件複製到你的機器上,修改它,重命名原始文件,將你的新版本複製到目標機器 –
@ user3109806我認爲你仍然試圖逃避雙引號(例如''sed -e \「s/unalias ls // g \」'')?你應該運行的是'ssh test_server'sed -e「s/unalias ls // g」-i .bash_profile'
有時更容易(特別是嵌套報價/雙引號)遠程複製臨時腳本文件並ssh腳本調用(並在刪除後)。不要忘了指定你的environement(像這裏的GNU sed似乎linux或mac,但沒有遠程的規範,假設相同) – NeronLeVelu