簡體   English   中英

OSX在Expect腳本中使用變量

[英]OSX use a variable in Expect script

我想使用OSX在Expect中訪問$(pbpaste)。

因此,例如,該別名連接到復制的IP地址(假設我在執行之前復制了它)-留下我輸入密碼:

alias s='ssh $(pbpaste) -l root'

這個腳本將我連接到腳本中列出的特定主機,並為我輸入密碼:

#!/usr/bin/expect
spawn  ssh hostname -l username
expect "password:"
send "secret\n"
interact

我想將$(pbpaste)合並到Expect腳本中,以便訪問復制的主機並也為我輸入密碼。 怎么樣?

附帶一提,我知道ssh密鑰,這就是將密碼以純文本格式放置的普遍形式。 在我的情況下,這並不重要,也無濟於事-使上述EXPECT腳本與$(pbpaste)變量一起使用的實用程序對我來說更為重要,因為主機名。

另外,我也希望能夠將主機作為參數而不是$(pbpaste)傳遞。 這是原始問題的第二要點-每個問題一個腳本? 如果沒有提供host參數,則默認為$(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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM