bash scriptas. For sukurti katalogus paimant informacija

K
  • 6 Grd '11

Sveiki,

Reikia pagalbos su bash script. Yra failas YER kuriame yra 4 zodziai, reikia sukurti bash scripta kuris paimtu informacija is YER failo ir sukurti 4 folderius, naudojant For cikla. Gal kas galetu pagelbeti ? Aciu.

T
Techtronic
Mindaugas N.
  • 7 Grd '11

Tai nesaugu!

#!/bin/bash
failas="$HOME/tmp/YER"
kur="$HOME/tmp"
for foo in `cat $failas`; do
    mkdir $kur/$foo
done
K
  • 7 Grd '11

kazkodel jis man sukuria folderi su cat uzrasu ,o ne is failo tuos zodzius.

G
  • 7 Grd '11

Perrašinėdamas panaudojai ne tas kabutes - vietoj backticks `, panaudojai paprastas kabutes '.

Kad niekad nesusipainiotum tarp backticks ir paprastų kabučių savo skriptuose naudok tokią išraišką $( komanda ).

Taigi gali perrašyti šį skriptą taip:

#!/bin/bash
failas="$HOME/tmp/YER"
kur="$HOME/tmp"
for foo in $( cat $failas ); do
    mkdir $kur/$foo
done
S
  • 7 Grd '11

Mano variantas:

#!/bin/sh

test "" != "$1" || exit 1

for item in $(cat $1) ; do
    mkdir -p $item
done

Paleisti reikia taip:

./skripto_vardas.sh YER

Šiaip tai tokiam reikalui nereikia net skripto, užtenka tokios vienos komandos:

for d in $(cat YER) ; do mkdir -p $d ; done
K
  • 7 Grd '11

Aciu, abieju veikia, jo buvau tikrai blogas kabutes uzdejas.