이 기능을 온라인에서 찾았습니다. 디렉토리를 생성하고 디렉토리를 변경합니다.
하지만 나는 그것의 모든 부분을 알고 싶습니다.
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
답변1
이름 목록을 전달할 수 있습니다. 각 디렉토리에 대한 디렉토리를 생성한 다음 CD로 들어갑니다.마지막하나.
이것은 필요하지 않습니다 eval
. 나는 다음과 같이 쓸 것입니다 :
mkdircd () { mkdir -p "$@" && cd "${!#}"; }
${!#}
사용간접 확장: $#
는 매개변수 개수이므로 ${!#}
마지막 매개변수의 값입니다.
답변2
mkdir -p "$@"
이름이 인수( $@
)로 전달되는 모든 디렉터리를 생성합니다.
-p
이 옵션을 사용하면 디렉토리가 존재하지 않는 디렉토리에 있는 경우 디렉토리를 재귀적으로 생성할 수 있습니다.
eval cd "\"\$$#\""
마지막 디렉터리로 이동하세요. $#
전달된 인수 수를 제공하고, 이는 \$$#
마지막 인수(예: 인수로 전달한 마지막 디렉터리 이름)를 제공합니다. 예를 들어 3개의 매개변수가 있는 경우 $#
명령 3
은 eval
실행됩니다 cd "$3"
.
명령은 실제로 이어야 합니다 . 많은 쉘 은 인수 1과 같은 값을 인수 10의 값으로 처리하기 eval cd "\"\${$#}\""
때문에 많은 쉘에서 중괄호가 필요합니다 ."$10"
0