Der er mange mådet at køre en for-løkke, og alt efter behov kan du bruge nedenstående.
Alle løkkerne her under giver følgende udskrift:
1 2 3 4 5
Når du kender antallet af gange, f.eks. 1-5
#!/bin/bash
for i in $(seq 1 5); do
echo $i
done
Skal løkken køre indtil den når en variabel skriver du den ind
#!/bin/bash
end=5
for i in $(seq 1 $end); do
echo $i
done
Vil du have helt styr på det kan du anvende metoden fra C.
for ((*startværdi*;slutværdi;vækst)
#!/bin/bash
for ((i=1;i<=5;i++)); do
echo $i
done
Disse skripts kan ogsp køres på en linie:
thoj@thoj-VirtualBox:~$ for i in $(seq 1 5); do echo $i; done 1 2 3 4 5
#!/bin/bash
for file in *; do
echo $file
done
#!/bin/bash
#~ file rename made by Thomas Jensen
#~
#~ Renames files in directory with .
#~
#~ If two or more files have the same filename with different extensions, then
#~ the consecutive number will not change
#~
#~ Usage: newfn.sh
#~
n=0
check_filename=""
for file in *; do
test -f "$file" || continue #Tester om det er en fil
filename=${file%%.*}
old_filename=${file%%.*}
new_filename=$1
if [[ ${filename} == ${check_filename} ]]; then
extension=${file#*.}
number=$(printf %03d $n)
check_filename=${file%%.*}
if [[$extension == "xmp"]]; then
sed -i s/${filename}
else
extension=${file#*.}
((n++))
number=$(printf %03d $n)
check_filename=${file%%.*}
fi
# printf "\n${filename}_$(date +%Y%m%d)_${number}.$extension\n"
printf "\n${new_filename}_${number}.$extension\n"
mv $file ${new_filename}_${number}.$extension
done
printf "\n"