GNU/Linux >> Belajar Linux >  >> Linux

6 Harapkan Contoh Argumen Baris Perintah Skrip

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

Linux
  1. Bagaimana Cara Melewati Argumen Baris Perintah Menjadi Skrip Shell?

  2. 7 Contoh Perintah Linux df

  3. Contoh Perintah rm di Linux

  1. Contoh Perintah ps di Linux

  2. Contoh Perintah dnf

  3. Cara menyampaikan argumen di Harapkan melalui baris perintah dalam skrip Shell

  1. Lewati Argumen Baris Perintah ke Skrip Bash?

  2. 15 Contoh Untuk Menguasai Sejarah Baris Perintah Linux

  3. matlab mengeksekusi skrip dari baris perintah linux