Bash - como você faz para que o resultado de um comando seja colocado em uma variável?

1

Por exemplo, digamos que eu queira digitar o comando pwd.

Isso me dá um caminho muito longo para o diretório atual em que estou.

O que eu realmente gostaria de fazer é fazer com que eu possa entrar em um diretório completamente diferente e ainda me referir ao diretório anterior em que eu estava, sem ter que memorizar o caminho anterior.

Há alguma maneira de fazer isso?

Chuck Testa
fonte

Respostas:

7

Você envolve várias questões diferentes em um. : P
Cobriremos a atribuição de variáveis ​​primeiro.
Para colocar o resultado de um comando em uma variável você pode usar a sintaxe `` ou $ () de backticks. Por exemplo:

MYPWD=`pwd`
MYPWD=$(pwd)

Para mais informações, consulte a seção Substituição de Comandos na página de manual do bash (1). Facilmente disponível em: http://linux.die.net/man/1/bash

Mas se a sua questão é sobre a mudança para o diretório anterior, o bash tem uma sintaxe embutida para isso. Basta fazer um cd -e bash irá levá-lo para onde você estava.

# cd /usr/local/bin
# cd /var/log/apache2
# cd -
# pwd
/usr/local/bin

Para um gerenciamento mais avançado de diretório / cd, verifique a página de manual pushde popdisso permite que você crie uma pilha de diretórios que você pode usar.

Mattias Ahnberg
fonte
1
Talvez também mencionar que ${OLDPWD}é uma variável que já contém o diretório anterior.
nicerobot