Array di Bourne Shell (sh)Di setiap bahasa pemrograman maupun bahasa scripting, umumnya ada fitur untuk menyimpan beberapa data dalam satu variable yaitu array. Tidak terkecuali Shell seperti Bash, Zsh, dll. Namun di POSIX-compliant Shell (/bin/sh) atau Dash, array tidak masuk di spesifikasi. Script yang ditulis dengan /bin/sh biasanya akan compatible dengan /bin/bash, dan tidak sebaliknya. Kita bisa membuat array, sekaligus iterasi di Bash seperti ini:
Jika kita jalankan menggunakan interpreter /bin/sh akan error: Syntax error: "(" unexpected Tenang, karena di sh tidak bisa menggunakan array, bukan tidak mungkin membuat struktur data yang menyerupai array:
Dengan script sh diatas, /bin/sh bisa diganti /bin/bash dengan aman, karena sekali lagi, sh compatible dengan Bash. Kalo dilihat antara versi Bash dengan sh, terdapat perbedaan menarik yaitu ${buah[@]} dan $buah yang digunakan pada iterasi menggunakan for. Sebenarnya jika kita echo, kedua outputnya adalah sama yaitu hanya string biasa yang dipisahkan dengan spasi: "apel jeruk mangga melon pisang" Jika pemisahnya bukan spasi, kita bisa menggunakan IFS (Internal Field Separator) dengan format IFS="pemisah". Kedua contoh diatas bisa berfungsi tanpa set IFS, karena standar IFS adalah semua whitespace termasuk spasi. Perhatikan script berikut:
Karena pemisahnya adalah titik dua (:) atau bukan spasi, bisa tanpa quote ("). Hasil: "apel jeruk mangga melon pisang ". Tentu implementasi array di sh memungkinkan tetapi di beberapa kasus bisa lebih tricky. Part 2: Array Push di Bash dan sh. |