Por que o shell ignora aspas nos argumentos passados a ele por meio de variáveis? [duplicado

Esta pergunta já tem uma resposta aqui:

omo armazenar um comando em uma variável no Linu 4 respostas

Isso funciona como anunciado:

# example 1
#!/bin/bash
grep -ir 'hello world' .

Isso não:

# example 2
#!/bin/bash
argumentString="-ir 'hello world'"
grep $argumentString .

Despite'hello world' sendo colocado entre aspas no segundo exemplo, grep interpreta'hello como um argumento eworld' como outro, o que significa que, nesse caso,'hello será o padrão de pesquisa eworld' será o caminho da pesquisa.

Novamente, isso só acontece quando os argumentos são expandidos a partir doargumentString variável. grep interpreta corretamente'hello world' como um argumento único no primeiro exempl

Alguém pode explicar por que isso é? Existe uma maneira adequada de expandir uma variável de seqüência de caracteres que preservará a sintaxe de cada caractere, para que seja interpretada corretamente pelos comandos do shel

questionAnswers(3)

yourAnswerToTheQuestion