0
我有這樣的命令:
ssh [email protected] 'sed -e "s|foo|${bar}|" /home/data/base_out.sql > /home/data/out.sql'
sed命令在本地shell工作。但它不是通過ssh命令擴展變量。謝謝!
我有這樣的命令:
ssh [email protected] 'sed -e "s|foo|${bar}|" /home/data/base_out.sql > /home/data/out.sql'
sed命令在本地shell工作。但它不是通過ssh命令擴展變量。謝謝!
規則是在單引號內不擴展參數。你在整個命令周圍都有單引號。之前的命令字符串作爲參數傳遞給ssh
,這是你想要的東西通過
ssh [email protected] "sed -e 's|foo|$bar|' /home/data/base_out.sql > /home/data/out.sql"
現在$bar
擴展:
試試這個。
我刪除了大約${bar}
的大括號,因爲我相信他們提供了一種錯誤的安全感。在這種情況下,他們不會保護您免於與using shell variables in sed commands相關的任何問題。