bash while-loop värde av variabel

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Oltronix
Inlägg: 408
Blev medlem: 10 december 2011, 21:24:38
Ort: Nynäs

bash while-loop värde av variabel

Inlägg av Oltronix »

Varför funger inte detta?

Kod: Markera allt

#!/bin/bash
filename=tempxx
ls /mnt/1wire | grep 10 > $filename
i=1
while read -r  line; do
t$i=`cat /mnt/1wire/$line/temperature`
i=$((i+1));
done < $filename
  • pi@mumin3:~/datalogger $ ./wgivare_t.sh
    ./wgivare_t.sh: line 7: t1=25.375: command not found
    ./wgivare_t.sh: line 7: t2=25.625: command not found
    ./wgivare_t.sh: line 7: t3=25.5: command not found
    ./wgivare_t.sh: line 7: t4=30.4978: command not found
    ./wgivare_t.sh: line 7: t5=22.625: command not found
Förståss går det att göra så här, men jag vill alltid veta varför det blir syntaxfel:

Kod: Markera allt

#!/bin/bash
filename=tempxx
ls /mnt/1wire | grep 10 > $filename
i=1
while read -r  line; do
ti=`cat /mnt/1wire/$line/temperature`
echo $ti >> tempyy
i=$((i+1));
done < $filename
ps jag använder owfs därav utseende på en del paths. Owfs är inte en del av problemet.
mAVRick
Inlägg: 319
Blev medlem: 19 mars 2013, 12:43:43
Ort: Östersund

Re: bash while-loop värde av variabel

Inlägg av mAVRick »

Uttrycket på rad 7 tolkas (efter expandering) som ett kommando, inte en tilldelning.
Jag tror problemet är dynamiska variabelnam. En snabb googling säger att det inte verkar omöjligt att få till, men jag tror du gör klokt i att försöka undvika sådana konstruktioner.
Skriv svar