Script met ‘expect’

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Melvin.P
  • Registratie: December 2015
  • Laatst online: 14-08 09:59
Middels een MDM-pakket (Jamf Pro) wil ik op macOS een script draaien dat een commando uitvoert. Bij het uitvoeren van dit commando wordt een gebruikersnaam en wachtwoord gevraagd. Daarom probeer ik het te automatiseren met behulp van ‘expect’.

Onderstaand script werkt naar behoren.

code:
1
2
3
4
5
6
7
8
9
#!/usr/bin/expect

set timeout 5
spawn profiles install -type bootstraptoken
expect "user"
send -- "gebruiker\r"
expect "password"
send -- "wachtwoord\r"
expect eof


Nu zou ik de gebruikersnaam en het wachtwoord met een variabele (parameter) willen instellen. Jamf Pro kent daarvoor veld 4 tot en met 11, en ik ben gewend deze met $4 tot en met $11 in het script op te nemen. In combinatie met expect lukt me dit nog niet. Ik krijg de foutmelding ‘no such variable while executing’, wanneer ik $4 en $5 gebruik.

Door met ‘-d’ diagnostische informatie af te vangen, heb ik kunnen herleiden dat de variabelen met andere kenmerken worden doorgegeven. Ik lijk argv[6] en argv[7] te moeten gebruiken, deze bevatten namelijk de waardes die ik als parameter heb ingesteld.

Daarbij loop ik vast. In plaats van allerlei voorbeelden te geven, stel ik de vraag liever open; kan iemand mij helpen dit op de juiste manier in te stellen? Dank alvast!

Alle reacties


Acties:
  • 0 Henk 'm!

  • Springuin
  • Registratie: Juli 2002
  • Laatst online: 11:01
Expect is Tcl/Tk. In Tcl/Tk krijg je je commandline parameters mee in $argv.

Iets als dit zou moeten werken:
code:
1
send -- "$argv(6)\r"


Disclaimer: expect is voor mij ook weer even geleden. Maar ik hoop dat de link met Tcl je verder helpt om makkelijker oplossingen te zoeken voor waar je tegenaan loopt.

Acties:
  • 0 Henk 'm!

  • Melvin.P
  • Registratie: December 2015
  • Laatst online: 14-08 09:59
Ik ga het zo proberen. Volgens mij had ik () nog niet geprobeerd. Wel [], eraan vast en met een spatie.

Acties:
  • 0 Henk 'm!

  • Melvin.P
  • Registratie: December 2015
  • Laatst online: 14-08 09:59
Oké, ik lijk een stapje verder. Eerst kreeg ik foutmeldingen, dat de parameter geen variabele zou zijn. Met ‘$argv(6)’ krijg ik een andere foutmelding; ‘variable isn’t array while executing. Ik spreek het waarschijnlijk nog niet op de juiste manier aan.