bash: Schleife über Zeilen einer Datei


-2

Hier ist mein Drehbuch:

#! /bin/sh

for line in $(cat list);
do
    echo "[$line]: Getting my workers list..";
    var=$line-"worker1";
    echo "$var" >> "hostlistworkers.txt"
    var=$line-"worker2";
    echo "$var" >> "hostlistworkers.txt"
    var=$line-"worker3";
    echo "$var" >> "hostlistworkers.txt"
done
fi

Wie kann ich die Behandlung der ersten Zeile der Datei ändern? wie folgt:

   If(it is the first line)
    echo "$var" >> "hostlistworkers.txt"
    var=$line-"worker2";
    echo "$var" >> "hostlistworkers.txt"
    var=$line-"worker3";
   Else 
   echo "[$line]: Getting my workers list..";
    var=$line-"worker1";
    echo "$var" >> "hostlistworkers.txt"
    var=$line-"worker2";
    echo "$var" >> "hostlistworkers.txt"
    var=$line-"worker3";
    echo "$var" >> "hostlistworkers.txt"

Vielen Dank für Ihre Hilfe.


5
Dies sollte wirklich in Stack Overflow abgefragt werden, wo sich alle programmierbezogenen Beiträge befinden. Außerdem müssen Sie erläutern, was Sie bereits ausprobiert haben und ob dies funktioniert hat oder nicht und welche Fehlermeldungen Sie erhalten haben.
James

1
Sie sollten die Skriptsprache angeben, z. B. bash im Titel und im Tag, wenn es bash ist. Beachten Sie, dass sh nicht immer bash ist ist in deinem Fall.
Barlop

Antworten:


2

Einfach eine Flagge deklarieren:

FIRST=0

if [ ! $FIRST ]; then
  ; do what you need
  FIRST=1
else
  ...
fi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.