Enrolado incorretamente na linha

0

Em uma solução para o pergunta , David Foerster menciona que o seguinte comando é incorretamente preenchido com linhas, o que introduz quebra de linha e caracteres de retrocesso onde não deve haver nenhum:

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

É possível mostrar exatamente o que ele está se referindo no comando?

    
por Nikhil 15.01.2018 / 22:09

1 resposta

1

Podemos usar printf para destacar argumentos individuais e inspecionar como o shell os tokeniza. Para o comando em questão versus a variante corrigida na minha resposta à pergunta vinculada (testada no Bash e no Dash):

$ printf '"%s"\n' sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
"sudo"
"add-apt-repository"
"deb [arch=amd64] https://download.docker.com/linux/ubuntu        trusty        stable"

e

$ printf '"%s"\n' sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
"sudo"
"add-apt-repository"
"deb [arch=amd64] https://download.docker.com/linux/ubuntu trusty stable"

Oh bem, isso não é tão diferente. No entanto, isso não é o que acabou no arquivo de fontes do repositório para o autor da pergunta vinculada:

% bl0ck_qu0te%

Eu não sei como isso aconteceu, mas certamente parece um problema com as barras invertidas no final da linha. De onde mais eles viriam? Talvez o autor tenha inserido um comando diferente ou eles usaram um interpretador de shell diferente.

    
por David Foerster 16.01.2018 / 03:38