porque “cd -” no arquivo .sh imprime o endereço

4

Eu uso "cd -" para alternar entre pastas. como:

cd /etc/                                                                                                                          
cd -   

mas porque "cd -" irá imprimir o endereço (como pwd)? Como posso parar de imprimir o endereço?

    
por worldterminator 19.01.2013 / 06:16

3 respostas

13

SUS4 diz :

When a - is used as the operand, this shall be equivalent to the command:

    cd "$OLDPWD" && pwd

which changes to the previous working directory and then writes its name.

Então, se você não quiser a metade da impressão do comportamento, apenas faça o primeiro bit você mesmo:

cd "$OLDPWD"

Ou o equivalente de expansão do til

cd ~-

Muitas vezes, se você precisar disso, pushd / popd é uma opção melhor, embora menos portável.

    
por 19.01.2013 / 06:26
1

Apenas redirecione a stdout para um buraco negro como este

cd - > /dev/null
    
por 19.01.2013 / 06:18
0

A maneira mais simples é não usá-lo. Execute os comandos em um shell separado:

(cd /etc/; ... )

Isso não altera o diretório de trabalho atual do shell 'principal'. Isso normalmente é mais robusto do que usar OLDPWD , porque você pode ter muitos comandos cd aqui, como

(cd /etc; ... ; cd /tmp; ... )
    
por 19.01.2013 / 11:05