Minha pergunta é semelhante àquela feita aqui:
Estou procurando fazer um loop FOR em um loop WHILE, mas como você vê quando lê o script
function twokey () {
taxt=$(echo "$k" | cut -d, -f2)
keycount=$(echo "$k" | tr ',' ' ' | wc -w)
echo "$f: There are $keycount keywords."
for keys in $keycount
do
echo "${keys}"
echo "Adding keyword $taxt."
exiv2 --keep -M"add Iptc.Application2.Keywords $taxt" -M"add Xmp.dc.subject $taxt" "$f"
((taxt++))
done
exiv2 -g Iptc.Application2.Keywords -Pv "$f"
}
function dothedeed () {
echo -e "Adding Keywords to \e[5;42m$f\e[0m."
echo -e "$f\t$k"
keycount=$(echo "$k" | tr ',' ' ' | wc -w)
echo "Here's the Keyword string."
echo -e "$k"
twokey
}
function dav () {
echo -e "What text file will I be using?"
read -er item
f=$item
while IFS="^" read -r f k
do
echo -e "File is \e[31m$f\e[0m"
if [[ ! -f "$f" ]]; then
echo "I don't see $f in this directory."
echo "Moving to next list item."
continue
fi
# dothedeed
twokey
done<"$f"
}
dav
... ele já define um separador de campo IFS, um quilate, para ler o arquivo de texto ASCII IN. Eu tentei o script como está, mas o "corte" de comando, na linha 21, continua "desembarque"-lo na primeira palavra após a primeira vírgula na seqüência de palavras-chave, que é tudo o que escreve para o arquivo de imagem. Eu não estou certo de mudar isso para um enquanto IFS="," vai me levar mais adiante. Pela minha lógica, deveria.
S Wright
Tags bash shell-script read