executando comandos no shell e desligando as exibições padrão de comandos no console [duplicado]

0

Este é o meu script

cd /opt/product/vinoth
-- some operations --
cd -

Ao executar este comando cd - , o caminho antigo é exibido no console.

existe alguma maneira de impedir que isso seja exibido no console.

O mesmo pode ser evitado em criar arquivos usando @ infront do comando.

Por surf eu entendi que isso pode ser alcançado usando cmd=$(cd -)

O comando não estava sendo executado e o caminho não foi alterado.

    
por VINOTH ENERGETIC 03.12.2014 / 15:20

2 respostas

1

Use OLDPWD :

/ $ cd /tmp
/tmp $ echo $OLDPWD
/
/tmp $ cd "$OLDPWD"
/ $

De man bash :

   OLDPWD The previous working directory as set by the cd command.
...
cd 
   An argument of - is converted to $OLDPWD before the directory 
   change is attempted.

$(cd -) é executado em um subshell, portanto, não pode afetar o shell atual.

Você também pode fazer:

cd - >/dev/null
    
por 03.12.2014 / 15:24
1

Conforme explicado em esta resposta, uma pequena variante para não exibir o diretório quando o cd for para o diretório de trabalho anterior está usando a expansão do til ~- :

cd ~-
    
por 17.01.2015 / 13:34