Salah satu cara alternatif untuk melakukan ini adalah dengan hanya mengarahkan input standar ke file Anda, di mana Anda memiliki semua input pengguna dalam urutan yang diharapkan oleh program. Misalnya, dengan program (disebut script.sh
)
#!/bin/bash
echo "Enter your name:"
read name
echo "...and now your age:"
read age
# example of how to use the values now stored in variables $name and $age
echo "Hello $name. You're $age years old, right?"
dan file input (disebut input.in
)
Tomas
26
Anda dapat menjalankan ini dari terminal dengan salah satu dari dua cara berikut:
$ cat input.in | ./script.sh
$ ./script.sh < input.in
dan itu akan setara dengan hanya menjalankan skrip dan memasukkan data secara manual - itu akan mencetak baris "Halo Tomas. Anda berusia 26 tahun, kan?".
Sebagai Radu Rădeanu telah sudah menyarankan , Anda bisa menggunakan cat
dalam naskah Anda untuk membaca isi file ke dalam avariable - dalam hal ini, Anda perlu setiap file berisi hanya satu baris, dengan hanya nilai yang Anda inginkan untuk variabel tertentu. Dalam contoh di atas, Anda akan membagi file input menjadi satu dengan nama (misalnya, name.in
) dan satu dengan usia (katakanlah, age.in
), dan mengubah read name
dan read age
baris untuk name=$(cat name.in)
dan age=$(cat age.in)
masing-masing.
KEY=VALUE
berpasangan? Solusinya sangat berbeda (jika itu yang terakhir, jawaban Takkat berlaku, mantan Radu)