簡體   English   中英

在bash中將stdout重定向到mysql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM