Bash Script - Como posso concatenar várias strings contendo caracteres especiais?

0

Esta é uma versão simplificada de um script em que estou trabalhando. Eu estou lendo números, que contêm quebras de linha, de um arquivo. Eu preciso concatenar cada número com outras strings, e eu preciso passar essa string concatenada para um comando find para usá-lo como uma expressão regular (espero que esse fato não torne isso um problema XY. Eu já tentei minha saída esperada com find para garantir que funcionará bem o suficiente para meus propósitos).

De qualquer forma, estou usando esta versão do script para descobrir como produzir essa string, no entanto, estou tendo problemas com a concatenação. Eu suspeito que Bash pode estar interpretando os caracteres especiais de uma forma que eu não pretendo, mas estou em uma perda quanto a como para evitar esse comportamento.

#!/bin/bash

some_number=6109 # read from file in real script, and would include newline

a='[^0-9]*'
b="${some_number%$'\n'}" # strip newline
c='_{1}.*.jpg'
regexp="$a$b$c"

echo "a: $a"
echo "b: $b"
echo "c: $c"
echo "regexp: $regexp"
echo "$regexp"

# Eventually, I need to pass the string to a find command:
find /path/to/dir/ -regextype posix-extended -regex $regexp > /file/to/overwrite.txt

O que eu espero:

a: [^0-9]*
b: 6109
c: _{1}.*.jpg
regexp: [^0-9]*6109_{1}.*.jpg
[^0-9]*6109_{1}.*.jpg

O que eu recebo:

a: [^0-9]*
b: 6450
c: _{1}.*.jpg
_{1}.*.jpg0-9]*6109
_{1}.*.jpg9

Estou particularmente intrigado com o fato de o Bash parecer produzir $ c, depois parte de $ a e, em seguida, parte de $ b na quarta declaração echo (e eu nem sei o que pensar sobre o quinto) . Depois de ler todas as perguntas / respostas abaixo, ainda não consigo chegar tanto quanto uma hipótese que possa explicar a saída real. Alguém se importaria de explicar o que está acontecendo aqui?

O que eu tentei:

Brincando com o uso de aspas simples para as strings desta pergunta: link

Tentando citar as referências de variáveis para essa pergunta: link

Analise todas as respostas a estas perguntas: link < href="https://stackoverflow.com/questions/2459286/unable-to-set-variables-in-bash-script"> link link

Agradecemos antecipadamente pelo seu tempo! Eu realmente aprecio a ajuda.

    
por Jack Brown 21.03.2018 / 17:30

0 respostas