カスタムmkcdコマンドが機能しないのはなぜですか? [コピー]

カスタムmkcdコマンドが機能しないのはなぜですか? [コピー]

非常に簡単なコマンドを書こうとしていますmkcd

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

ディレクトリが作成されましたが、ディレクトリ変更部分が実行されていないようです。

コメントに基づいて更新:

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

まず、ローカルファイルとして実行してみました。

./mkcd

私の最終的な立場は、両方の/opt/bin立場は効果がないようです。

ベストアンサー1

関数でなければなりません。

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

スクリプトは独立した独自のプロセス内で実行されます。ディレクトリを変更しても親シェルには影響しません(と同様に、サブシェル内のディレクトリも変更されません(cd /tmp))。

おすすめ記事