Files
在期望腳本中編寫文件名
我有一個文件有幾行,比如說:
server_file.txt:
[main] server1 param1 param2 param3 server2 param1 param2 param3
我想取最後一列的第一個值在
expect
腳本中組成文件名,以便文件名是:server2_030417T124700,其中030417T124700是創建文件的目前日期。我已經能夠通過以下幾行來實現日期部分:
#!/usr/bin/expect -f log_file ./log/post.log <some_code> system mv ./log/post.log ./log/post_[clock format [clock seconds] -format {%Y%m%dT%H%M%S}].log
但是在我有“ post_ ”的地方,我想根據 server_file.txt 的最後一行有“ server2 ”
我試圖通過使用一個執行 bash 命令
tail -1 server_file.txt | awk '{print $1}'
但沒有成功的變數來做到這一點,我認為不使用 bash 命令也可以做到這一點。
在腳本中添加這 3 行
tcl
程式碼expect
以獲取伺服器名稱。set fp [open "server_file.txt" r] while {[gets $fp data] >= 0} {set servername [lindex [regexp -inline -all -- {\S+} $data] 0]} close $fp
當從腳本執行時,它已經避免了
tail
命令並使用了正確的語法:awk``expect
#!/usr/bin/expect -f log_file ./log/post.log set servername [exec awk {FNR>1 {print $1}} server_file.txt] system mv ./log/post.log ./log/"$servername"_[clock format [clock seconds] -format {%Y%m%dT%H%M%S}].log