linux - 如何編寫(xiě)expect腳本自動(dòng)導(dǎo)入mysql數(shù)據(jù)庫(kù)
問(wèn)題描述
我的腳本是這樣的test.sh
#!/usr/bin/expectset password rootspawn mysql -u root -pexpect 'password:'send '$passwordrn'send 'drop database blog_api;rn'send 'CREATE DATABASE `blog_api` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;rn'send 'exit;rn'expect 'Bye'send 'mysql -uroot blog_api < 2017-01-09-12:00:09.sql;rn'expect 'Enter password:'send '$passwordrn'interact
導(dǎo)出是沒(méi)有問(wèn)題的,但是導(dǎo)入的話沒(méi)有效果,大神求教。。。
問(wèn)題解答
回答1:你腳本中已經(jīng)設(shè)置了變量password的值,為什么不直接用shell呢,直接執(zhí)行命令mysql -uroot -p $password blog_api < 2017-01-09-12:00:09.sql或者寫(xiě)成shell腳本不就可以導(dǎo)入了。
回答2:為啥非要用expect呢,這個(gè)命令命名可以直接用shell來(lái)寫(xiě)的
#!/usr/bin/env bashmysql -uroot -p ’root’ -e ’drop database if exists blog_api; CREATE DATABASE `blog_api` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;’mysql -uroot -p ’root’ blog_api < 2017-01-09-12:00:09.sql
如果非要用expect的話,試試下面這樣
#!/usr/bin/expectset password ’root’spawn mysql -uroot -p -e 'drop database if exists blog_api; create database `blog_api` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;'expect 'password:'send '$passwordr'expect eofspawn mysql -uroot blog_api < 2017-01-09-12:00:09.sql;expect 'password:'send '$passwordr'expect eof
相關(guān)文章:
1. boot2docker無(wú)法啟動(dòng)2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. docker-compose中volumes的問(wèn)題4. nignx - docker內(nèi)nginx 80端口被占用5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. java - SSH框架中寫(xiě)分頁(yè)時(shí)service層中不能注入分頁(yè)類7. golang - 用IDE看docker源碼時(shí)的小問(wèn)題8. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?9. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎10. docker api 開(kāi)發(fā)的端口怎么獲取?

網(wǎng)公網(wǎng)安備