【发布时间】:2011-04-23 03:25:01
【问题描述】:
我一直在尝试捕获 grep 的结果,登录到远程机器,在 Expect 命令中使用 ssl。 我读了“except_out(buffer)”变量来包含生成进程的输出,但它似乎是空的...... 一个指针将不胜感激!
#!/bin/bash
username=hoge
password=hoge
hostname=machine20
prompt="\[$username@$hostname ~\]$"
expect -c "
set timeout -1
spawn ssh -l $username $hostname
expect {
\"$username@$hostname's password:\" {
send \"$password\n\"
} \"Are you sure you want to continue connecting (yes/no)?\" {
send \"yes\n\"
expect \"$username@$hostname's password:\"
send \"$password\n\"
}
}
expect \"$prompt\"
sleep 2
expect \"$prompt\"
send \"ps axuw | grep java | grep -vc grep\n\"
expect -re -indices \"(.*)\"
send \"echo result : $expect_out(buffer)\"
预期版本:5.43.0
【问题讨论】:
-
也许你会对this感兴趣。
-
不要转义所有这些双引号。您希望连续两次提示,中间只有一次睡眠——这肯定是错误的
-
@glenn:这是因为它都在一个 bash 脚本中,这极大地使事情变得更加复杂。