Bash escapando está me confundindo

1

Digamos que eu tenha um arquivo (executável) chamado literalmente 'a \ b'. Apenas ecoa algumas coisas. Agora eu quero chamar isso e posso fazer isso inserindo

user@machine:~/test$ ./a\b

no meu console. Agora vamos escrever isso em uma variável

user@machine:~/test$ COMMAND="./a\b"

e agora eu quero executar este arquivo 'a \ b' usando backticks. Aqui está o resultado:

user@machine:~/test$ '$COMMAND'
a: command not found
user@machine:~/test$

Então, aqui está a minha pergunta: como posso fazer isso funcionar?

Eu tentei várias maneiras e brinquei com '' e várias barras invertidas no COMMAND, mas nada funcionou ...

Eu sei que não faz sentido, mas eu só quero saber como bash e '' trabalhar juntos para interpretar as coisas

    
por Fabian Werner 30.01.2015 / 12:44

1 resposta

4

Eu acho que seu arquivo executável apenas imprime a na tela. Quando você escreve $COMMAND , o arquivo é executado e a saída tenta ser executada novamente. Como ele não pode executar o comando a , ele gera um erro. Você pode usar apenas $COMMAND ou echo '$COMMAND'

    
por 30.01.2015 / 13:01