Komut dosyanızla ilgili (ana) sorun, min
ve max
ayarlarının ana kabuğunuzda değil, alt kabuğunda gerçekleşmesidir. Bu yüzden, boru hattı yapıldıktan sonra değişiklikler görünmez.
Bir diğeri, iki kez okuyor olmanızdır - bu, diğer her satırı atlamak istiyorsanız amaçlanmış olabilir, ancak bu biraz sıra dışıdır.
Sonuncusu, min
ayarının a
tam anlamıyla olmasıdır. $a
'a ayarlamak istiyorsunuz. (Muhtemelen) un-gerekli ikinci okuma çıkarmadan ve atamaları sabitleme, birinci sorunun kurtulmak için process substitution kullanma
, kodunuz gibi görünmelidir: bizler için
max=0
min=20000000
while read a
do
if [[ $a -gt $max ]]
then
max=$a
fi
if [[ $a -lt $min ]]
then
min=$a
fi
done < <(cat) # careful with the syntax
echo $max
echo $min
kim önceki sorunuzu kaçırdınız, bunun için daha fazla bilgi verebilir misiniz. Ne çeşit değiştirmeye çalışıyorsun? –
ayrıca "max = a", "max = $ a" olmalıdır, "min = a" olmalıdır, "min = $ a" olmalıdır –
Her değer 20000000'dan büyükse "min" olmalıdır? Sanırım, 'min' ve 'max' ilk değeriniz olmalı ... –