Linux - Polecenie awk wyświetla wszystkie słowa


(eureka 170) #1

Witam, mam następujący skrypt, który przyjmuje parę parametrów, gdzie pierwszy to nazwa pliku, a każdy kolejny to nazwa jakiegoś folderu. Potem ten plik ma skopiować się do tych wszystkich folderów

#!/bin/bash

if [$# -lt 2]; then

   echo Niepoprawna ilosc parametrow

   exit

elif [! -e $1]; then

    echo "Błąd: Plik $1 nie istnieje"

    exit

fi

a=1;

echo $* > plik


while [$a -lt $#]; do

	a=$[a+1];

	echo $a

	echo $(cat plik | awk '{print $a}');

done;

Jednak pisząc go natknąłem się na problem z poleceniem awk. Dlaczego jak jest w pętli to zamiast wyświetlić mi konkretną kolumnę, to on wyświetla mi wszystkie słowa? Jak napiszę np.echo $(cat plik | awk '{print $1}'); to mi wyświetli pierwszą kolumnę i jest ok, ale jak zamiast 1 dam a i wsadzę to w pętlę to nie działa tak jak chcę. Dlaczego tak jest?