ОК, слияние двух ответов выше (или ниже или где бы они ни были!):
#!/usr/bin/expect
log_user 0
set timeout 10
set userid "XXXXX"
set pass "XXXXXX"
### Get two arguments - (1) Host (2) Command to be executed
set host [lindex $argv 0]
set command [lindex $argv 1]
# grab the password
stty -echo
send_user -- "Password for $userid@$host: "
expect_user -re "(.*)\n"
send_user "\n"
stty echo
set pass $expect_out(1,string)
spawn /usr/bin/ssh -l $userid $host
match_max [expr 32 * 1024]
expect {
-re "RSA key fingerprint" {send "yes\r"}
timeout {puts "Host is known"}
}
expect {
-re "username: " {send "$userid\r"}
-re "(P|p)assword: " {send "$pass\r"}
-re "Warning:" {send "$pass\r"}
-re "Connection refused" {puts "Host error -> $expect_out(buffer)";exit}
-re "Connection closed" {puts "Host error -> $expect_out(buffer)";exit}
-re "no address.*" {puts "Host error -> $expect_out(buffer)";exit}
timeout {puts "Timeout error. Is host down or unreachable?? ssh_expect";exit}
}
expect {
-re "\[#>]$" {send "term len 0\r"}
timeout {puts "Error reading prompt -> $expect_out(buffer)";exit}
}
expect {
-re "\[#>]$" {send "$command\r"}
timeout {puts "Error reading prompt -> $expect_out(buffer)";exit}
}
expect -re "\[#>]$"
set output $expect_out(buffer)
send "exit\r"
puts "$output\r\n"
Обратите внимание, что я изменил переменную $ password на $ pass, чтобы соответствовать другому ответу.
То, что они подразумевают под неложью:
return true;
Так этот код:
var arr = [ "one", "two", "three", "four", "five" ];
$.each(arr, function(i) {
if(arr[i] == 'three') {
return true;
}
alert(arr[i]);
});
предупредит один, два, четыре, пять
'Неложью возврата', они означают возвращать любое значение, которое не удалось бы к булевой лжи. Таким образом, Вы могли возвратиться true
, 1
, 'non-false'
, или независимо от того, что можно продумать.
Вид JavaScript имеет идею 'правдоподобия' и 'falsiness'. Если переменная будет иметь значение затем, то обычно 9as Вы будете видеть), она имеет 'правдоподобие' - пустой указатель, или никакое значение не склоняется к 'falsiness'. Отрывки ниже могли бы помочь:
var temp1;
if ( temp1 )... // false
var temp2 = true;
if ( temp2 )... // true
var temp3 = "";
if ( temp3 ).... // false
var temp4 = "hello world";
if ( temp4 )... // true
, Надо надеяться, который помогает?
кроме того, который стоит проверить эти видео от Douglas Crockford
обновление: благодарен за то, что @cphpython определяет неработающие ссылки - я обновил для указания на рабочие версии теперь