![사용자 정의 mkcd 명령이 작동하지 않는 이유는 무엇입니까? [복사]](https://linux55.com/image/100531/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%20mkcd%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
매우 간단한 명령을 작성하려고 합니다 mkcd
.
#!/bin/bash
mkdir $1
cd $1
디렉토리가 생성되었지만 디렉토리 변경 부분이 실행되지 않는 것 같습니다.
의견을 기반으로 업데이트:
mkcd () {
mkdir "$1"
cd "$1"
}
먼저 로컬 파일로 실행해 보았습니다.
./mkcd
내 최종 입장은 /opt/bin
두 입장 모두 효과가 없는 것 같다는 것입니다.
답변1
함수여야 합니다.
mkcd() { mkdir -p "$1" && cd "$1"; }
스크립트는 별도의 자체 프로세스 내에서 실행됩니다. 디렉토리를 변경해도 상위 쉘에는 아무런 영향이 없습니다( 에서와 같이 하위 쉘 내의 디렉토리도 변경되지 않습니다 (cd /tmp)
).