0
我想更新我的數據庫在VW中運行的一列(使用Vagrant
)與主機的IP。爲什麼vagrant ssh -c在命令中忽略單引號?
要做到這一點,我想用一個bash腳本:
LOCAL_IP=$(ipconfig getifaddr en0)
SQL="vagrant ssh -c 'psql -U user -d mydatabase -h localhost -c \"update mytable set mycolumn = '$LOCAL_IP';\"'"
eval $SQL
但我得到這個錯誤:
ERROR: syntax error at or near ".123"
LINE 1: update mytable set mycolumn = 123.123.123.123;
的SQL vriable的輸出繼電器:
echo $SQL
vagrant ssh -c 'psql -U user -d mydatabase -h localhost -c "update mytable set mycolumn = '123.123.123.123';"'
當我在vm中調用了從echo $SQL
開始的psql命令,一切正常,但我沒有主機ip。
vagrant ssh
psql -U user -d mydatabase -h localhost -c "update mytable set mycolumn = '123.123.123.123';"
它看起來像vagrant ssh -c
命令將刪除IP的單引號。有任何想法嗎?
UPDATE
最簡單的方式重現我的問題:
$ vagrant ssh -c 'echo "update table set column = 'test';" > bla.sql'
$ vagrant ssh
$ cat bla.sql
update table set column = test;
有你嘗試了雙引號s和LOCAL_IP的簡單引號? –
是的,我有,但它可以在數據庫上執行任何操作之前產生錯誤。 – adebasi