Portál AbcLinuxu, 11. května 2025 04:29
#/bin/bash
LIST='ls *.php'
for $i in $LIST
iconv -f WINDOWS-1250 -t UTF-8 $i > $i_tmp
mv $i_tmp $i
done
bash(1)
Chybí do
#/bin/bash
LIST=`ls *.php`
for $i in $LIST
do iconv -f WINDOWS-1250 -t UTF-8 $i > ${i}_tmp
mv ${i}_tmp $i
done
for $i
a ne for i
.
jinak bych měl návrh na vylepšení:
#!/bin/bash LIST=`ls *.php` TEMP=`mktemp` for FILE in $LIST do iconv -f WINDOWS-1250 -t UTF-8 "$FILE" > "$TEMP" mv "$TEMP" "$FILE" done
LIST=`ls *.php`To má být pokus o blbej vtip?
ls
je naprosto zbytečné, protože LIST=*.php
bude fungovat úplně stejně. A taky to úplně stejně v for i in $LIST
selže na všech souborech obsahujících mezeru, tabelátor a odřádkování (znaky v IFS
)#!/bin/bash TEMP="$(mktemp)" for FILE in *.php do iconv -f WINDOWS-1250 -t UTF-8 "$FILE" > "$TEMP" mv "$TEMP" "$FILE" done
TEMP="$(mktemp tmp.XXXXX)"Kýho výra to máš
mktemp
, že má povinný template?
X
, tak ještě jednou:
TEMP="$(mktemp tmp.XXXXXX)"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.