0
嘗試創建shell函數以從命令行轉儲查找表。這是我的基本指令(標籤改爲隱瞞身份):psql shell函數處理錯誤參數
[email protected]:~$ psql -h psql.example.com -U me mydb -c "SELECT usertype_id,name,slug FROM tbl_usertype ORDER BY name"
我認爲這將是相應的外殼功能:
[email protected]:~$ function slugs() { psql -h psql.example.com -U me mydb -c "SELECT $1_id,name,slug FROM tbl_$1 ORDER BY name"; }
然而,我的功能顯然把我的論點在最後的命令而不是在$ 1令牌上:
[email protected]:~$ slugs usertype
psql: warning: extra command-line argument "usertype" ignored
ERROR: relation "tbl_" does not exist
LINE 1: SELECT _id,name,slug FROM tbl_ ORDER BY name;
如何正確地對其進行編碼?
究竟是什麼外殼和什麼版本?如果你在「echo」前綴「psql」,即'echo psql -h ...',輸出是什麼? –
GNU bash 4.2.24(1) - 發佈。輸出爲「psql -h psql.example.com -U me mydb -c SELECT usertype_id,name,slug FROM tbl_usertype ORDER BY name」。 –
所以當你迴應命令時沒問題,但是當你運行它時沒有問題。離奇。 –