GNU/Linux >> Belajar Linux >  >> Linux

Jalankan Perintah Menggunakan Argumen yang Berasal Dari Array?

Misalkan saya memiliki program grafis bernama app . Contoh penggunaan:app -t 'first tab' -t 'second tab' membuka dua 'tab' dalam program itu.

Pertanyaannya adalah:bagaimana saya bisa menjalankan perintah (yaitu app .) ) dari dalam bash script jika jumlah argumen dapat bervariasi?

Pertimbangkan ini:

#!/bin/bash
tabs=(
    'first tab'
    'second tab'
)

# Open the app (starting with some tabs).
app  # ... How to get `app -t 'first tab' -t 'second tab'`?

Saya ingin skrip di atas memiliki efek yang setara dengan app -t 'first tab' -t 'second tab' . Bagaimana skrip bash seperti itu dapat ditulis?

Sunting:perhatikan bahwa pertanyaannya menanyakan tentang menyusun argumen baris perintah dengan cepat menggunakan array argumen.

Jawaban yang Diterima:

Memberikan argumen dari array itu mudah, "${array[@]}" diperluas ke entri array sebagai kata (argumen) yang berbeda. Kita hanya perlu menambahkan -t bendera. Untuk melakukannya, kita dapat mengulang larik pertama, dan membangun larik lain untuk daftar lengkap argumen, menambahkan -t bendera saat kita pergi:

#!/bin/bash
tabs=("first tab" "second tab")
args=()
for t in "${tabs[@]}" ; do 
    args+=(-t "$t")
done
app "${args[@]}"

Gunakan "[email protected]" bukannya "${tabs[@]}" untuk mengambil argumen baris perintah dari skrip alih-alih daftar kode keras.


Linux
  1. Menggunakan Stratis untuk mengelola penyimpanan Linux dari baris perintah

  2. Jalankan Perintah Yang Dibayangi Alias?

  3. Jalankan perintah di beberapa server linux dari windows

  1. Bagaimana Cara Membuat Array Elemen Unik Dari String/array Di Bash?

  2. Menggunakan perintah passwd dari dalam skrip shell

  3. Bagaimana cara menjalankan perintah Vim dari shell?

  1. Skrip Bash:Menggunakan perintah skrip dari skrip bash untuk mencatat sesi

  2. Mengotomatiskan menjalankan perintah di Linux dari Windows menggunakan Putty

  3. Bagaimana saya bisa menjalankan fungsi dari skrip di baris perintah?