script ausente variável desaparecendo

1

Eu criei um pequeno script para mover arquivos de vídeo de uma câmera montada em capacete para minha máquina mythbuntu e há uma variável que, por algum motivo, não será passada para o script. A variável em questão é

d='echo $file | awk '{ print $6 }''

que é capturado OK, no entanto, na declaração

scp -l 5000 $name $SavePath$d_$hour.AVI

apenas não irá inserir um valor.

#!/bin/bash
# This script does copy files from /media/disk/DCIM/100DSCIM to 
# 192.20.0.200:/media/Elements/mythtv/videos/BikeRiding and renames the files using the time stamp
set -x
[email protected]:/media/Elements/mythtv/videos/BikeRiding/
SourcePath=/media/disk/DCIM/100DSCIM/
ls $SourcePath*.AVI --full-time > file_list
cat file_list | while read file
do
    d='echo $file | awk '{ print $6 }''
    hour='echo $file | awk '{ print $7 }''
    name='echo $file | awk '{ print $9 }''
    scp -l 5000 $name $SavePath$d_$hour.AVI
done
    
por Inspector Gadget 19.10.2012 / 11:23

1 resposta

13

Isso ocorre porque o bash interpreta o nome da variável como d_ . Use chaves para delimitar o nome da variável nesse caso:

scp -l 5000 $name $SavePath${d}_$hour.AVI

ou até mesmo

scp -l 5000 ${name} ${SavePath}${d}_${hour}.AVI

e é muito melhor duplicar a variável de cotação para evitar erros com nomes com símbolos estranhos como espaço:

scp -l 5000 "${name}" "${SavePath}${d}_${hour}.AVI"
    
por 19.10.2012 / 11:31

Tags