A substituição de comandos, que significa usar o resultado de um comando para algo in-line, é feita com $( ... ) .
No seu caso,
core_out=$( find coretst.* )
No entanto, isso solicitará que find procure em todos os caminhos que iniciam com qualquer coisa para a qual coretst.* se expande. O que eu suponho que você quer fazer é procurar no diretório atual ou abaixo por arquivos que corresponda ao padrão coretst.* . Você faria isso com
core_out=$( find . -type f -name 'coretst.*' )
A citação do padrão coretst.* impede que o shell seja expandido para nomes no diretório atual.
Então, é uma questão o que você gostaria de fazer com os nomes de caminho retornados por isso. Se você quiser apenas imprimi-los, não há necessidade da variável:
find . -type f -name 'coretst.*'
Se você quiser remover esses arquivos, faça isso em find :
find . -type f -name 'coretst.*' -exec rm {} +
Qualquer outra operação nos arquivos também pode ser executada em find .
Veja a pergunta " Por que o loop está causando a saída incorreta Pratique? "por razões pelas quais usar os caminhos que find retorna pode ser um mau hábito (as respostas são sobre o resultado de find , que é o que eu presumo que você queira fazer mais tarde) .
Dos comentários:
I want to search it in a current folder, and the output on this will be used on a substring and consequently will be used on this:
strings ($core_out) | grep "pmdtm("
Se eu entendi isso corretamente, isso pode ser feito com
find . -type f -name 'coretst.*' -exec strings {} + | grep -F 'pmdtm('
Ou seja, execute strings em todos os arquivos encontrados e localize as linhas que contêm a string pmdtm( .
Se você quiser saber em qual arquivo a correspondência foi encontrada:
find . -type f -name 'coretst.*' -exec sh -c '
for name; do
if strings "$name" | grep -qF "pmdtm("; then
printf "%s\n" "$name"
fi
done' find-sh {} +