if cp "$line"*.rpm destination/ ; then
echo $line "successful!"
else
echo $line "not found!"
echo "$line">> /home/Sud/notfound.txt
fi
Isso funcionou para mim.
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
cd /home/Sud/Minimal\ Packages/All/
if [ -d $line ]
then
cp $line*.rpm /home/Sud/NewFolder/rpms/
else
echo $line>>/home/Sud/NewFolder/notfound.txt
fi
done < "$1"
Estou tentando executar o código acima para
Sempre que executo o script, ele copia todos os nomes para notfound.txt
, mesmo que estejam presentes na pasta que estou procurando.
Onde estou indo errado?
Poderia, por favor, tentar colocar todo o uso de $line
entre aspas duplas para lidar corretamente com espaços em branco?
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
cd /home/Sud/Minimal\ Packages/All/
if [ -d "$line" ]
then
cp "$line*.rpm" /home/Sud/NewFolder/rpms/
else
echo "$line" >> /home/Sud/NewFolder/notfound.txt
fi
done < "$1"
Tags shell-script file-copy