[英]Redirecting stdout to mysql in bash
我可以執行mysql傳遞文件,如下所示。
mysql -u username -p < some_file
在bash腳本中,我有一個函數可以回顯要傳遞給bash腳本中相同命令的輸出。
some_function() {
echo "Some SQL"
}
如何使用管道/重定向將輸出傳遞到mysql?
我已經嘗試了以下方法,但是沒有此類文件或目錄失敗。 如何在這里使用函數的輸出。
mysql -u username -p < some_function
在這種情況下,無需使用管道或重定向,可以直接使用-e
選項來執行一些SQL命令:
mysql -u username -p -e "SQL/MySQL commands"
以特定數據庫為例:
mysql -u username -p -e "use database_name; SHOW tables"
mysql -u username -p -e "SHOW tables" database_name
您還可以捕獲命令或函數的輸出,並將其作為參數傳遞,如下所示:
sql_command="$(your_function)"
mysql -u username -p -e "${sql_command}" database_name;
如果您確實要使用管道或重定向(但我認為在這種情況下沒有意義):
$ mysql -u root -p database_name < <(echo "SHOW TABLES") # redirection
$ mysql -u root -p database_name <<< "$(echo "SHOW TABLES")" # another way to use redirection
$ echo "SHOW TABLES"|mysql -u root -p database_name # pipe
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.