7

This is my simple expect script:

#!/usr/local/bin/expect
puts "Argu 1 : [lindex $argv 0]"

Run
---
expect example.expt Testing

Output
------
Argu 1: Tesing

I need to count the arguments, which are passed by command line. Like this:

expect example.expt 1 2 3 4

I need the script for the following output
Total: 4 arguments
Arg1: 1
Arg2: 2
Arg3: 3
Arg4: 4

How can I do this? Thanks!

zb226
  • 9,586
  • 6
  • 49
  • 79
Mr. Black
  • 11,692
  • 13
  • 60
  • 85

2 Answers2

5

expect uses Tcl as its scripting language. You're looking for the llength command:

puts "Total: [llength $argv] argument(s)"
Frédéric Hamidi
  • 258,201
  • 41
  • 486
  • 479
1

Late but will be useful i guess.

This prints the number of command line arguments and the arguments list as well.

#!/usr/bin/expect -f

puts "No of Command Line Arguments : [llength $argv]"

puts "Arguments List "
set argsCount [llength $argv];
set i 0
while {$i < $argsCount } {
    puts [lindex $argv $i]
    set i [expr $i+1];
}

More details about expect scripting can be found here

Vivek
  • 3,523
  • 2
  • 25
  • 41