GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan Program Dengan Berbagai Parameter (loop)?

Saya punya program, prog , yang mengambil argumen integer ketika saya memanggilnya dari terminal, misalnya:

./prog 10

Saya ingin menjalankan prog dengan rentang nilai, mis. 10, 20, 30, ... . Apakah ada cara yang rapi untuk melakukannya, selain menggunakan:

./prog 10 ; ./prog 20 ; ./prog 30 ; ....

Jawaban yang Diterima:

Anda dapat menggunakan loop for sederhana dengan Bash, Zsh atau Ksh93.
Berikut ini hanya berfungsi sejak Bash versi 4 (2009), zsh 4.3.10 (2010) dan ksh93r (2006) (meskipun {x..y} sintaks berasal dari zsh (dalam 2.6-beta4 pada tahun 1995)).

#!/bin/bash
# since Bash v4
for i in {10..100..10}
do
     $path_of_prog/prog $i
done

{$start..$end..$step} bagian mengatakan bahwa $i di awal sama dengan $start dan $i akan pergi ke $end .
$step adalah jumlah yang $i akan ditingkatkan setiap langkah.
Jadi kita mendapatkan nilai 10 20 30 ... 100 untuk $i .

Anda juga bisa menulis semuanya dalam satu baris dengan

for i in {10..100..10}; do ./prog $i; done

Jika Anda memiliki seq Bash dan GNU yang lebih lama tersedia, gunakan baris berikut

#!/bin/bash
#only for pre Bash v4
for i in $(seq 10 10 100)
do
   $path_of_prog/prog $i
done

atau sebagai satu baris

for i in $(seq 10 10 100);do ./prog $i; done

(di atas mengasumsikan Anda belum mengubah $IFS variabel).


Linux
  1. Bash -c Dengan Parameter Posisi?

  2. Bagaimana Cara Membuat A For Loop Dengan Jumlah Iterasi yang Dapat Diubah?

  3. Cara Membuat Thread di Linux (Dengan Program Contoh C)

  1. Cara memprogram dengan Bash:Sintaks dan alat

  2. Bagaimana cara menganalisis file dump inti program dengan GDB ketika memiliki parameter baris perintah?

  3. Mencari tahu dengan parameter mana program dimulai

  1. Untuk Loop Dengan Nama File?

  2. Parameter Khusus Bash Dijelaskan dengan 4 Contoh Skrip Shell

  3. Cara memutakhirkan program yang diinstal dengan Softaculous