Linux expect 自动登录,自动执行任务

1、创建一个test.sh,写入:

/usr/bin/expect << EOF

set timeout 10

spawn sudo -s
expect "*密码*"
send "password\r"
expect "#*"
# send "systemctl status AuthorizeServer\r"

# 大括号必须跟在expect (此处有一个空格)后面,如果大括号换行了,执行不了

expect {
"*active (running)*" { send "systemctl stop AuthorizeServer\r" }
"*failed*" { send "systemctl start AuthorizeServer\r" }
"*inactive (dead)" { send "systemctl start AuthorizeServer\r" }
}

# set timeout 3
# send_user "waiting..."
# set timeout 5
expect eof

EOF

2、Dos窗口执行:bash ./test.sh   bash后面接test.sh的路径

posted @ 2022-02-24 16:00  剑存古风  阅读(66)  评论(0编辑  收藏  举报