Echo: vários comandos

0

Hoi todo mundo,

Atualmente, estou tendo dificuldades para executar vários comandos em um eco. A linha a seguir é um exemplo do problema que estou tendo:

echo (cd .. && pwd)

A ideia é que, quando estou atualmente na pasta "home / Documents", o código acima imprime "home" - mas ainda está no diretório "home / Documents". No entanto, o comando acima falha.

A pergunta mais geral é: Como posso executar vários comandos em um eco e imprimir o último resultado (ou todos os resultados, se não for possível de outra maneira).

Obrigado e cumprimentos.

    
por bublitz 24.08.2018 / 12:37

2 respostas

2

The idea is, that, when I am currently in the folder home/Documents, the above code prints home - but is still in the directory home/Documents

Você não precisa de echo porque pwd imprime o que você deseja. Use isto:

(cd .. && pwd)

Existem duas coisas inteligentes aqui:

  • (whatever) corre whatever em uma subcamada. Se cd estiver dentro desses parênteses, ele alterará o diretório de trabalho atual da subshell, não o shell principal (atual).
  • a && b runs b iff a succeeded (retornou status de saída 0 ). Em geral, se você quiser que seu script usando cd seja robusto, é bom verificar sempre se cd foi bem-sucedido. Isso evita a execução de outro (s) comando (s) em um diretório errado.

Observe que quando há links simbólicos envolvidos, você pode não obter o caminho esperado. Veja esta resposta do wiki da comunidade para detalhes.

    
por 24.08.2018 / 13:39
-1

Eu encontrei a solução:

(cd .. && echo 'pwd')

Obrigado:)

    
por 24.08.2018 / 12:52