사용자 정의 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)).

관련 정보