Difícil de ajudar sem o script exato que você está executando, mas um ponto para verificar:
O valor de "param1" que você publicou contém caracteres de asterisco ("*"). Estes têm um significado especial para sed e grep (e perl, e geralmente em qualquer expressão regular). Para corresponder a esses caracteres como literais, você geralmente precisa "escapar" deles ao incluir uma barra invertida.
Então, em vez de "aa * b", você precisaria "aa * b". Tente isso primeiro para ver se isso ajuda.
Advertência: O shell também processará um \, portanto, ao usá-lo como um valor de parâmetro, coloque o valor em '', como:
param1='basldafsd\*asdfsadf'
O '' protegerá caracteres especiais do shell.