GNU/Linux >> Belajar Linux >  >> Linux

Typeset -a Apakah Memberikan Kesalahan Dalam Script?

Saya menggunakan array asosiatif dalam skrip saya, oleh karena itu saya biasa mendeklarasikannya dengan

typeset -A <array_name> perintah, dan itu berfungsi dengan baik di bash Prompt

Tetapi ketika saya menggunakannya dalam skrip saya, saya mendapatkan kesalahan berikut

typeset: -A: invalid option
typeset: usage: typeset [-afFirtx] [-p] name[=value] ...

Solusi alternatif juga bisa saya terima.

SIDENOTE:Saya mencoba mengeset -a tetapi mendeklarasikan array yang diindeks. Tapi saya ingin array asosiatif.

Jawaban yang Diterima:

Itu adalah kesalahan yang dihasilkan oleh Bash 3 untuk typeset -A . Array asosiatif ditambahkan di Bash 4, dan tidak di Bash 3.2 dan sebelumnya.

Tampaknya skrip Anda dijalankan dengan versi Bash yang berbeda dari yang Anda gunakan sebagai Shell Anda. Jika Anda menggunakan mesin yang sama dalam kedua kasus, Anda memiliki beberapa versi yang diinstal dan mungkin dapat memilih satu dengan jalur yang berbeda. Jika Anda menggunakan mesin lain yang menjalankan skrip, Anda mungkin dapat menginstal versi yang lebih baru, tetapi jika tidak, Anda kurang beruntung untuk mendapatkan dukungan langsung di Bash.

zsh mendukung array asosiatif sejak versi yang jauh lebih lama, jadi jika Anda memilikinya, Anda mungkin dapat mem-porting skrip Anda tanpa terlalu banyak pekerjaan. Jika Anda tidak dapat melakukannya, Anda dapat memalsukannya dengan array biasa dan grep , atau menggunakan ${[email protected]} dan satu set variabel biasa, yang tersedia di versi Bash yang lebih lama. ${[email protected]} memperluas ke nama semua variabel yang namanya dimulai dengan prefix , yang dapat Anda gunakan dalam kombinasi dengan beberapa variabel prefix_key1 , prefix_another untuk mendapatkan sebagian besar perilaku array asosiatif.


Linux
  1. Penanganan kesalahan dalam skrip Bash

  2. Bisakah Skrip Bash Dihubungkan ke File?

  3. Bagaimana Cara Men-debug Skrip Bash?

  1. Script Bash Untuk Mengisi Template?

  2. Kesalahan Skrip Bash:Ekspresi Integer Diharapkan?

  3. Cara Memisahkan String dalam Skrip Bash

  1. Skrip Bash - Contoh Halo Dunia

  2. Jalankan skrip bash dari URL

  3. alternatif --config Java bash script