Como ignorar espaços no caminho do arquivo para o comando bash select [duplicate]

0

Eu tenho o seguinte script Bash:

#!/bin/bash
cd ~/Library/Developer/CoreSimulator/Devices/;

files=$(find . -name iaGambro_gambro.sql)

select file in $files; do
    if [ -n "$files" ]; then
        sudo sqlite3 -header -column "${file}"
    fi
    break
done

Deve devolver os 2 resultados seguintes:

1) ./2EFF5EBF2B2D/Library/Private Documents/iaGambro_gambro.sql
2) ./A1AF3463BFD2/Library/Private Documents/iaGambro_gambro.sql

Mas está retornando os 4 seguintes por causa do espaço em branco em Private Documents :

1) ./2EFF5EBF2B2D/Library/Private 
2) Documents/iaGambro_gambro.sql
3) ./A1AF3463BFD2/Library/Private 
4) Documents/iaGambro_gambro.sql

Como obtenho o select para reconhecer os caminhos com os espaços?

OBSERVAÇÃO: estou procurando como executar no caminho determinado, não apenas imprimi-lo

    
por Seth McClaine 04.05.2015 / 17:21

1 resposta

1

Você pode usar a opção find ... -exec :

find . -name iaGambro_gambro.sql -exec bash -c '
  select file do
    : Do something with "$file"
    break
  done
' bash {} +
    
por 04.05.2015 / 17:36