Artikel ini menjelaskan opsi baris perintah yang dapat diteruskan ke skrip yang diharapkan.
Jika Anda baru mengenal bahasa skrip, pertama-tama mulailah dengan contoh hello world harapan kami.
1. Jalankan skrip ekspektasi dari baris perintah menggunakan opsi -c
harapkan juga juga memungkinkan Anda untuk mengeksekusinya secara langsung di baris perintah menggunakan opsi -c seperti yang ditunjukkan di bawah ini.
$ expect -c 'expect "\n" {send "pressed enter\n"} pressed enter $
Setelah Anda menjalankan skrip di atas, ia menunggu baris baru (\n) dan setelah menekan tombol enter, ia akan mencetak pesan “tekan enter” dan keluar.
2. Jalankan skrip ekspektasi secara interaktif menggunakan opsi -i
Harapkan skrip dapat berjalan secara interaktif dengan membaca perintah dari input standar menggunakan opsi -i seperti yang ditunjukkan di bawah ini.
$ expect -i arg1 arg2 arg3 expect1.1>set argv arg1 arg2 arg3 expect1.2>
Biasanya ketika Anda menjalankan perintah expect di atas tanpa opsi -i, itu akan memperlakukan arg1 sebagai nama file skrip, jadi opsi -i membuat daftar argumen tidak terganggu.
Opsi ini berguna saat Anda menjalankan skrip ekspektasi dengan flag -c. Karena secara default expect berjalan secara interaktif.
3. Cetak pesan debug saat menjalankan skrip harapan
Anda dapat mengaktifkan pesan diagnostik untuk dicetak ketika Anda menjalankan kode dengan opsi -d seperti yang ditunjukkan di bawah ini.
$ cat sample.exp # !/usr/bin/expect -f expect "\n"; send "pressed enter"; $ expect -d sample.exp expect version 5.43.0 argv[0] = expect argv[1] = -d argv[2] = sample.exp set argc 0 set argv0 "sample.exp" set argv "" executing commands from command file sample.exp expect: does "" (spawn_id exp0) match glob pattern "\n"? no expect: does "\n" (spawn_id exp0) match glob pattern "\n"? yes expect: set expect_out(0,string) "\n" expect: set expect_out(spawn_id) "exp0" expect: set expect_out(buffer) "\n" send: sending "pressed enter" to { exp0 pressed enter}
4. Aktifkan debugger yang diharapkan menggunakan -D
Opsi -D digunakan untuk mengaktifkan debugger dan hanya mengambil nilai boolean sebagai argumen. Ini akan menunjukkan apakah debugger harus dimulai atau hanya menginisialisasi dan menggunakannya di lain waktu.
$ expect -D 1 script
Opsi sebelum kiri opsi -D akan diproses sebelum debugger. Kemudian perintah yang tersisa akan dieksekusi setelah memulai debugger.
$ expect -c 'set timeout 10' -D 1 -c 'set a 1' 1: set a 1 dbg1.0>
5. Jalankan skrip ekspektasi baris demi baris
Biasanya expect membaca seluruh skrip ke dalam memori sebelum menjalankannya. -b opsi membuat harapan untuk membaca skrip satu baris pada satu waktu. Ini bisa berguna ketika Anda belum menulis sepenuhnya pada saat itu dan berharap mulai menjalankannya dan dengan demikian menghindari penulisan file sementara.
$ expect -b
6. Jadikan Argumen Baris Perintah untuk Tidak Ditafsirkan
Anda dapat membuat ekspektasi untuk tidak menginterpretasikan argumen baris perintah menggunakan — flag.
Biasanya Anda akan membaca argumen baris perintah seperti yang ditunjukkan di bawah ini.
$ cat print_cmdline_args.exp #!/usr/bin/expect puts 'argv0 : [lindex $argv 0]'; puts 'argv1 : [lindex $argv 1]';
Saat menjalankan skrip di atas, berikan opsi baris perintah, yang akan diperlakukan seperti argumen (bukan opsi ekspektasi) seperti yang ditunjukkan di bawah ini.
$ expect print_cmdline_args.exp -d -c argv0 : -d argv1 : -c