와일드카드와 쉘 확장은 같은 것입니까? 나는 글을 쓰면서 C를 배우고 있어요맞춤형 주택POSIX도 배우고 있어요. 이제 홈 디렉토리를 의미하는 POSIX 준수 cd -
여부가 궁금합니다 . ~
모든 쉘이 이를 수행할 수 있는 것은 아니며 cd 명령에 최소한의 POSIX 준수가 필요한지 여부도 알 수 없습니다. 내가 사용하는 구현은
int do_cd(int argc, const char **argv) {
const char *path;
if (argc > 1) {
path = argv[1];
}
else {
path = getenv("HOME");
if (path == NULL) {
fprintf(stderr, "No HOME environment variable\n");
return 1;
}
}
if (chdir(path) < 0) {
perror(path);
return 1;
}
return 0;
}
답변1
물결표 확장셸 명령 처리의 일부이며 확장된 경로를 인수로 cd
처리 하지 않습니다.cd
POSIX요구 사항 cd -
은 다음과 같습니다.cd "$OLDPWD" && pwd
.OLDPWD
다음으로 설정해야 합니다.cd
PWD
명령을 실행할 때 존재하는 경우 .
답변2
물결표 확장은 표준화된 것으로 보입니다(참조IEEE 표준 1003.1, 2004)이지만 셸 확장의 일부가 아닌
cd
.
cd -
또한 지원되어야 합니다(참조:IEEE 표준 1003.1, 2005).