在網上搜尋一大堆以後我總結到了2個linux互動的方法。
第乙個方法 – 管道法
這個辦法不是所有的地方都有用,但是呢他非常的簡單方便,不需要裝第三方軟體的支援,在一些命令比如passwd上就非常有用了。
**如下:
#!/bin/bash
(echo "curpassword"
sleep 1
echo "newpassword"
sleep 1
echo "newpassword")|passwd
這個是sh指令碼,如果想直接在shell裡面操作就要這樣寫
後執行的命令 | 先執行的命令
比如:(echo 123;echo 123) | passwd
enter new unix password: retype new unix password: passwd: password updated successfully
這個命令就會先執行passwd然後執行前面的 echo 123將向控制台輸出123 , 多個語句必須使用;來分開,另外必須用括號包裹起來。
這個命令執行以後將會修改當前使用者的密碼 為123
第二個方法 – 強大的expect
expect是乙個非常強大的shell工具,因為expect本來就是為實現自動互動功能而生,但是他也有個缺點,大多數的linux都沒預設安裝它,需要自行安裝一次。
ubuntu使用者用apt-get install expectcentos使用者用yum install expect
來安裝這個工具
#!/usr/bin/expectexpect因為過於強大,所以有點難懂,建議大家多看看其他例子(搜尋引擎關鍵字:expect 例子)和基本用法。spawn /etc/webmin/start
expect "enter pem pass phrase:"
send "password\n"
expect eof
exit
解釋下:
第一行是可以理解成宣告,反正這個必須的!
第二行spawn代表執行檔案
第三行如果出現了enter pem pass phrase:
第四行則輸出password和乙個回車
第五行expect eof可以理解成是退出判斷,這個是必須的,跟程式設計裡面的}一樣
最後乙個是退出就不解釋了。。
參考:前幾天在寫指令碼的時候我有乙個功能是想切換使用者,讓他自動輸入密碼。我覺得shell指令碼實現不了,於是就上網查詢,
發現expect指令碼可以實現,但是一直沒有試驗,今天閒來沒事就做一下測試。
1。首先確認expect的包要安置。
[[zhuying@sor_sys opt]$ rpm -qa | grep expect
安裝過後會顯示:
[[zhuying@sor_sys opt]$rpm -qa | grep expect
expect-5.43.0-5.1
expect-devel-5.42.1-1
2.檢視expect的路徑,可以用
[zhuying@sor_sys opt]$which expect
/usr/bin/expect
[zhuying@sor_sys opt]$ view autosu.sh
3。確定指令碼有可執行許可權
chmod +x autosu.sh
#!/usr/bin/expect-f//這個expect的路徑就是用which expect 檢視的結果
spawn su - oracle//切換使用者
expect "password:"//提示讓輸入密碼
send "99billzy\r"//輸入oracle的密碼
interact
//操作完成
這在root使用者切換到oracle使用者的時候特別的快,但是在其他使用者切換到oracle的時候則需要等待一段時間!
另外需要注意的是:
不能按照習慣來用sh autosu.sh來這行expect的程式,會提示找不到命令,如下:
autosu.sh: line 3: spawn: command not found
couldn't read file "password:": no such file or directory
autosu.sh: line 5: send: command not found
autosu.sh: line 6: interact: command not found
因為expect用的不是bash所以會報錯。執行的時候直接./autosu.sh就可以了。~切記!
參考:
ubuntu下安裝PyCharm的兩種方式
pycharm乙個是python整合開發環境,它既提供收費的專業版,也提供免費的社群版本。pycharm帶有一整套可以幫助使用者在使用python語言開發時提高其效率的工具,比如除錯 語法高亮 project管理 跳轉 自動完成 單元測試等等。pycharm非常好用,而且是跨平台的,在windows...
Redhat nis client兩種接入方式
redhat nis client兩種接入方式 在redhat上nis client有兩種方式接入nis伺服器 etc nsswitch.conf和system config authentication 通過 etc nsswitch.conf的方式使用者只能通過yppasswd進行修改密碼且無法...
python threading 兩種建立方式
作用 建立在thread模組之上,可以更容易地管理多個執行執行緒。通過使用執行緒,程式可以在同乙個程序空間併發地執行多個操作。threading模組建立在thread的底層特性基礎上,可以更容易地完成執行緒處理。1 呼叫函式 要使用thread,最簡單的方法就是用乙個目標函式例項化乙個thread物...