O Bash não adiciona aspas simples à sua string. As aspas simples são como torna a saída do rastreio set -x
visualmente não ambígua. No bash, set -x
produz resultados visualmente não ambíguos, colocando aspas simples em torno de cadeias de caracteres que contêm caracteres especiais de shell (espaço em branco e !"#$&\()*;<>?[\]^'{|}~
). Aqui, você está rastreando um comando que recebe um parâmetro contendo "
, então o bash imprime com aspas simples em torno dele para deixar claro que "
é um caractere literal na string e não é algo na shell sintaxe de origem.
Parece que você não queria ter um aspas duplas no argumento. Então não coloque um.
Você precisa de aspas duplas em torno de expansões de variáveis, mas são aspas duplas, na sintaxe do shell, não colocando uma aspa dupla entre aspas, de forma que um aspas duplas acabem na string.
"./gem5/build/$ARCHI/$TARGET" gem5/configs/example/se.py -c "./$PROGRAM" -o "$ARGUMENT"