使用OSX,我想访问Expect中的$(pbpaste)。
例如,这个别名连接到一个复制的ip地址(假设我在执行它之前复制了它),让我输入密码:
alias s='ssh $(pbpaste) -l root'
这个脚本将我连接到脚本中列出的特定主机,为我输入密码:
#!/usr/bin/expect
spawn ssh hostname -l username
expect "password:"
send "secretn"
interact
我想将$(pbpaste)合并到期望的脚本中,以便访问复制的主机并为我输入密码。怎样
顺便说一句,我知道ssh密钥,把密码放在纯文本中通常是不好的形式。在我的情况下,这并不重要,也对我没有帮助——让上面的EXPECT脚本使用$(pbpaste)变量作为主机名对我来说更重要。
此外,我希望能够将主机作为参数而不是$(pbpaste)传递。不过,这是最初问题的次要问题——每个问题一个脚本?或者,如果没有提供主机的参数,则默认为$(pbpaste)?哪个更容易写/理解。
我不能测试它,但这应该可以工作:
spawn ssh [exec pbpaste] -l username
或者使用命令行参数:
#!/usr/bin/expect
if {$argc == 0} {
set hostname [exec pbpaste]
} else {
set hostname [lindex $argv 0]
}
spawn ssh $hostname -l username