最近在專案中用到shell指令碼來執行命令,發現公司周圍都不會寫shell指令碼
shell是使用者和linux作業系統之間的介面。類似windows系統的dos命令列。linux中有多種shell,其中預設使用的是bash。但是如果使用到互動式輸入密碼的需要使用expect來執行,詳見[sh和bash](
直接上指令碼
#!/usr/bin/expect
spawn ssh [email protected]
.92.70
set timeout 2
expect "password:"
send
"115lburabeszw\r"
expect "*]#"
set password "wuxin952"
spawn su root
expect "password:"
send
"wuxin952\r"
expect "#"
send
"/wls/serviceop/virtuoso-opensource/home/bin/isql localhost:13002\r"
send
"db.dba.ttlp_mt(file_to_string_output('/wls/serviceop/virtuoso_script/loan.ttl'),'','');\r"
interact
send:用於向程序傳送字串
expect:從程序接收字串
spawn:啟動新的程序
interact:允許使用者互動
expect 「#」代表確認切換為root使用者後才能執行下面語句,沒有這句無法執行下面語句
vi a.sh 可以檢視該檔案內容,如果要修改,則鍵盤輸入a,然後使用上下鍵切換,儲存,鍵盤輸入esc–:–wq回車即可
ls -l檢視該資料夾下的檔案屬性
shell指令碼總結
1.定義變數 1 變數名和等號之間不能有空格。2 使用乙個定義過的變數,只要在變數名前面加美元符號 即可,變數名外面的花括號是可選的,加不加都行,加花括號是為了幫助直譯器識別變數的邊界.特殊變數列表 變數 含義 0 當前指令碼的檔名 n 傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如...
shell指令碼學習總結
看完了書 shell指令碼學習指南 順便總結一下 看了整本書,全部都是命令,但也確實很難記得命令的選項,所以學習方法就變了。學習嘛,要考慮到遺忘的可能,既然會忘,還不如不去記,能做的就是但用到的時候再去學,那麼現在學習的目的就是為了縮短以後用到時再去學習的學習時間,所以現在所應該學的,是將書本上的命...
Shell指令碼學習總結
最近一段時間研究語音識別 automatic speech recognition,asr 接觸到一款優秀的asr開源專案kaldi。學習過程中,發現kaldi大部分指令碼採用shell語音編寫,所以潛心學習了一段時間的shell程式設計。總體來說,該語言難度一般,關鍵要記住眾多的命令,採用思維導圖...