Portál AbcLinuxu, 9. května 2025 06:23
#!/bin/sh
SEZNAM=`ls --format single-column`
echo "test pred"
(while read JMENO AHOJ; do
echo "$JMENO"
done)<$SEZNAM
echo "test PO"
výstup
johny@c3:~/Desktop/FOTKY/AA/C.Budejovice/Servis$ ./pokus.sh
test pred
./pokus.sh: line 13: celkov� pohled na d�lnu ( workshop facade ).JPG
d�lna ( work base ).JPG
?ekac� m�sto ( customer waiting area ).JPG
P9250147.JPG
P9250148.JPG
P9250149.JPG
P9250151.JPG
P9250152.JPG
P9250153.JPG
P9250154.JPG
P9250155.JPG
P9250162.JPG
pokus.sh
recepce ( reception ).JPG
Thumbs.db
vstup ( entrance ).JPG: Příliš dlouhé jméno souboru
test PO
díky :)
<
načítá vstup ze souboru, jehož jméno je uvedeno za lomenou závorkou. Po expanzi proměnné se tedy váš skript pokouší dělat tohle:
… (while read JMENO AHOJ; do echo "$JMENO" done)<'dílna ( work base ).JPG čekací místo ( customer waiting area ).JPG P9250147.JPG P9250148.JPG P9250149.JPG P9250151.JPG P9250152.JPG P9250153.JPG P9250154.JPG P9250155.JPG P9250162.JPG pokus.sh recepce ( reception ).JPG Thumbs.db vstup ( entrance ).JPG' …Přičemž to celé tučné v jednoduchých uvozovkách je bráno jako jméno souboru. Máte nějaký zvláštní důvod ten skript psát zrovna takhle? Co třeba
ls --format single-column | while read JMENO AHOJ; do echo "$JMENO" donePokud s tím tedy chcete ještě něco dál dělat, ten skript je zatím ekvivalentní (až na ty pomocné výpisy) prostému
ls --format single-column
find
. A nebo tenhle skript můžete upravit na
for file in * ; do echo $file done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.