aprendinolinux
(usa Ubuntu)
Enviado em 04/01/2015 - 08:27h
Ola @badtrip, bora lá ver o que tá pegando.
num=$((RANDOM%7))
Você quer pegar um número inteiro randômico variando de 1 a 7 é isso ?
echo $num
Mostrando o número...
cp -f /var/www/html/image/$num/banner.jpg /var/www/html/images
Está usando o parâmetro
-f que vai remor arquivo destino antes de copiá-lo caso não haja permissão para escrita.
é isso mesmo q vc quer ? Perigoso rsrs
cp: impossível obter estado de “/var/www/html/image/1\r/banner.jpg”: Arquivo ou diretório não encontrado
uma dica.
Em operações com diretórios, evite usar a variável desta forma $num , tente protege-la com aspas sempre que possível.
Costumo usar assim: "${num}", ou assim para o seu caso:
No teu caso, está usando um número e não deveria dar problema.
Mas vamos imaginar que após o número exista um espaço ?
Colocando aspas, ele vai mostrar este espaço e usa-lo.
cp "/var/www/html/image/${num}/banner.jpg" /var/www/html/images
Uma boa alternativa seria vc dar um
ls (listar) para saber se existe essa imagem.
Poderia fazer uma função e só executar o comando se encontrar a imagem na origem.
Já para o destino, só precisa ter certeza que o diretório existe.
Por favor, pesquise sobre o comando
test
Vá passando mais detalhes e a galera vai ajudando.
Coloque suas dúvidas tranquilamente, mas de preferência, coloque os comandos e resultados para termos certeza que a imagem aleatória com este numeral existe mesmo.
ps: que tal colocar em uma variável para saber o que está pegando ?
minhavar="/var/www/html/image/${num}/banner.jpg"
echo $minhavar
Vai que está mostrando o número e depois um espaço ?