Por que o comando mkcd não está funcionando? [duplicado]

1

Estou tentando escrever um comando mkcd muito simples:

#!/bin/bash
mkdir $1
cd $1

O diretório é criado, mas a parte do diretório de mudanças parece não ser executada.

Atualizar com base no comentário:

mkcd () {
  mkdir "$1"
  cd "$1"
}

Estou tentando executá-lo primeiro como um arquivo local:

./mkcd

Meu local final é /opt/bin , nenhum dos locais parece funcionar.

    
por Philip Kirkbride 08.12.2016 / 14:28

1 resposta

3

Precisa ser uma função:

mkcd() { mkdir -p "$1" && cd "$1"; } 

Um script será executado dentro de seu próprio processo separado. A mudança de diretórios não terá efeito no shell pai (nem irá alterar os diretórios dentro de um subshell como em (cd /tmp) ).

    
por 08.12.2016 / 14:36