在centos7環境下進行編碼測試:
#!/bin/bash
mysql -u root <<EOF
use www_example_com;
UPDATE wp_posts SET post_name='001' WHERE id='70';
exit
EOF
將上述文件保存成sh文件,然後賦予權限chmod +x,即可執行。在開始使用了mysql -u root進行登錄,這步操作之前需要設置mysql免密碼登錄即可
第二種執行shell腳本的方法:
/bin/sh /root/example_operate/test.sh
如何設置mysql免密碼登錄:
1,首先停止mysql服務
systemctl stop mysqld
2,修改配置文件無密碼登錄
vi /etc/my.cnf
在最尾部加上
skip-grant-tables
保存並退出
3,啓動mysql
systemctl start mysqld.service
4,登錄mysql
mysql -u root
連按兩次回車,進入mysql
此處注意不要加-p
另外附加Linux中shell腳本EOF的用法:
Shell中通常將EOF與 << 結合使用,表示後續的輸入作爲子命令或子Shell的輸入,直到遇到EOF爲止,再返回到主調Shell。
可以把EOF替換成其他東西,意思是把內容當作標準輸入傳給程序。
回顧一下< <的用法。當shell看到< <的時候,它就會知道下一個詞是一個分界符。在該分界符以後的內容都被當作輸入,直到shell又看到該分界符(位於單獨的一行)。這個分界符可以是你所定義的任何字符串。
例子:自動登錄mysql(root:root,passwd:123456),查詢test庫,test1表裏的user=aa的記錄。
複製代碼代碼如下:
#!/bin/sh
MySQL -uroot -p123456 <<EOF
use test;
select * from testaa while a=10000; ###1000 not usr single quote mark,because a is int
# type,only char type need single quote mark.
exit
EOF