Ich habe das folgende Bash-Skript, das ich mit dem Terminal starten.Multiple Bash-Skript mit verschiedenen Parametern
dataset_dir='/home/super/datasets/Carpets_identification/data'
dest_dir='/home/super/datasets/Carpets_identification/augmented-data'
# if dest_dir does not exist -> create it
if [ ! -d ${dest_dir} ]; then
mkdir ${dest_dir}
fi
# for all folder of the dataset
for folder in ${dataset_dir}/*; do
curr_folder="${folder##*/}"
echo "Processing $curr_folder category"
# get all files
for item in ${folder}/*; do
# if the class dir in dest_dir does not exist -> create it
if [ ! -d ${dest_dir}/${curr_folder} ]; then
mkdir ${dest_dir}/${curr_folder}
fi
# for each file
if [ -f ${item} ]; then
# echo ${item}
filename=$(basename "$item")
extension="${filename##*.}"
filename=`readlink -e ${item}`
# get a certain number of patches
for i in {1..100}
do
python cropper.py ${filename} ${i} ${dest_dir}
done
fi
done
done
Vorausgesetzt, dass es mindestens eine Stunde benötigt, um alle Dateien zu verarbeiten. Was passiert, wenn ich die '100' mit '1000' in der letzten for-Schleife ändere und eine weitere Instanz des gleichen Skripts starte?
Wird der erste Prozess auf 1000 zählen oder wird weiterhin bis 100 gezählt?
Der erste wird zu 100 zählen und der zweite wird zu 1000 zählen. –
Beiseite: Sie haben eine ganze Menge von Bugs, die http://shellcheck.net/ zu erfassen. –
Ehrlich gesagt, das ist wirklich * wirklich * ineffizient. Es ist albern, die Python-Laufzeit in einer engen inneren Schleife von der Shell auszugehen, anstatt all deine Arbeit in einem einzigen Python-Prozess zu erledigen. –