2016-08-23 68 views
0

我試圖將腳本放在一起批量更新一堆數據庫表。我有一個文件列表(但我可以從stdin中獲得它),並且我試圖構建ALTER TABLE命令。我有以下如何從單獨的輸入行(從文件或標準輸入)格式化bash命令行

while read table; do echo "ALTER TABLE $table ENGINE=Aria"; done < tables 

然而其輸出是這樣的

ENGINE=Ariamydatabase.mytableone 
ENGINE=Ariamydatabase.mytabletwo 
ENGINE=Ariamydatabase.mytablethree 

,而不是

ALTER TABLE mydatabase.mytableone ENGINE=Aria; 
... 

喜歡我的預期。我究竟做錯了什麼?最終,我會將echo更改爲mysql -uroot -ppassword -e"ALTER TABLE $table ENGINE=Aria;"

回答

-2

Cat命令將處理您的新線路操縱員。

試試這個代碼:

$ cat tables | while read table; do echo "ALTER TABLE $table ENGINE=Aria"; done 
+1

'貓文件|雖然'和'while

+0

約翰你試過嗎? –

+1

是的。它也不例外。貓不翻譯行結束或剝離回車。 –

相關問題