/ / Tentando usar o esperado no script do Mac - bash, macos

Tentando usar esperar no script do Mac - bash, macos

Tentando escrever um script simples para o sshum servidor e, em seguida, executar uma cauda para logs de erro, mas estou recebendo um erro dizendo "spawn comando não encontrado" .Eu estou usando esperar em vez de bash e ter verificado / usr / bin e está lá. Script é:

#!/usr/bin/expect -f
echo "starting tail"
echo "password for the box?"
read -s theBoxPassword
spawn ssh root@10.0.0.10
expect "root@10.0.0.10"s password: "
send $theBoxPasswordr

Não sei exatamente qual é o problema. Eu olhei para um monte de exemplos online e parece que eu tenho a coisa certa e a sintaxe correta. Alguma idéia?

Respostas:

0 para resposta № 1

Você parece estar faltando shell (/bin/sh) sintaxe com expect sintaxe. Ambos echo e read são comandos shell. Espera executa entrada e saída usando comandos como expect_user e send_user, como demonstrado em esta resposta.

Se você quer misturar a sintaxe do shell e esperar, você pode fazer algo assim:

#!/bin/sh
echo "starting tail"
echo "password for the box?"
read -s theBoxPassword

expect <<EOF
spawn ssh root@10.0.0.10
expect "root@10.0.0.10"s password: "
send "$theBoxPasswordr"
EOF

Isso usa o shell para produzir seu prompt eleia a senha e passe um script para esperar no stdin. O shell executará a substituição de variáveis ​​no script antes de ser passado para esperar.