Nahe genug:
timeout -5s "ssh $line true"
Das ist:
Verwenden Sie korrekte Anführungszeichen.
timeout `ssh …`
kann hier unmöglich funktionieren, da dies "run 'ssh' bedeutet, die Ausgabe aufzeichnen und dann die Ausgabe auf 'timeout' setzen."Führen Sie ssh im "batch" -Modus aus, dh geben Sie einen Befehl zum Ausführen. Andernfalls läuft ssh im interaktiven Modus und bleibt auch bei erfolgreichen Verbindungen für immer hängen.
Sie könnten auch versuchen:
ssh -o ConnectTimeout=5s $line true