Bunu yapmanın alternatif bir yolu da, standart girdiyi, tüm kullanıcı girişini programın beklediği sırada aldığınız dosyaya yönlendirmek olacaktır. Örneğin, programla (çağrılan 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?"
ve giriş dosyası (denir input.in)
Tomas
26
Bunu terminalden aşağıdaki iki yoldan biriyle çalıştırabilirsiniz:
$ cat input.in | ./script.sh
$ ./script.sh < input.in
ve sadece betiği çalıştırmak ve verileri manuel olarak girmekle aynı olacaktır - "Merhaba Tomas. 26 yaşındasın, değil mi?" satırını yazdıracaktı.
As Radu Rădeanu gelmiştir zaten önerilen şunu kullanabilirsiniz catbir değişken bir bir dosyanın içeriğini okumak için komut dosyası içinde - bu durumda, Eğer bu özel değişken için yalnızca istediğiniz değere sahip, tek bir satır içerecek şekilde her dosyayı gerekir. Yukarıdaki örnekte, giriş dosyasını bir adla (say, name.in) ve bir yaşla (say, age.in) ayırır ve sırasıyla read nameve read agesatırlarını ve satırlarını değiştirirsiniz .name=$(cat name.in)age=$(cat age.in)
KEY=VALUEmi yoksa çiftler mi? Çözümler oldukça farklı (ikincisi ise, Takkat'ın cevabı eski Radu'nun cevabı geçerlidir)