2012-05-29 3 views
0

필자는 기본적으로 cd 명령을 래핑하고 추가 기능을 추가하는 bash 함수를 작성하고 있습니다.cd에 대한 래퍼 작성 - 사용자 정의 오류 메시지를 표시하거나 cd의 오류 메시지를 닫습니다.

이 방법은 문제가 없지만 주어진 경로가 존재하지 않으면 사용자가 디렉토리를 입력 할 수있는 충분한 권한이없는 즉시 사용자가 cd에서 오류 메시지를 표시합니다.

간단한 예 :

$ echo $PWD 
/home/helpermethod/workspace 
$ up helpermethod # goes up to the first directory named helpermethod 
$ echo $PWD 
/home/helpermethod 
$ up foo 
bash: cd: /home/helpermethod/foo: No such file or directory 

은 그 오류 메시지 거품을 위로 수 있도록 괜찮, 또는 좀 더 의미있는 뭔가를 사용자에게 제공 (실제 구현을 숨기기) 있겠습니까?

EDIT

함수는 사용자 (희망)에 의해 많이 사용될 것이다.

편집하는 것은이 함수의 기능

... up하자 사용자는 현재 디렉토리 위의 디렉토리의 기본 이름을 입력합니다.

예.

$는 $ PWD /홈/helpermethod/작업 공간/자바에게

에코 당신은

$ up home 

PWD 촬영하고, 기본 이름 후 부품이 PWD에서 제거됩니다 입력합니다.

는 또한, 걷는 "경로"를 입력 할 수있는 경우이 같은 기본 이름을 가진 여러 디렉토리 : 귀하의 요구 사항에 전적으로 의존

$ echo $PWD 
/foo/baz/foo/bar 
$ up baz foo # go to foo, which lies above baz 

답변

1

. 이 기능을 직접 작성하고 있습니까? 그렇다면, 그것은 단지 귀하의 취향에 달려 있습니다. 다른 사람을 위해서 쓰고 있습니까? 그런 다음 자신의 선호도 및 요구 사항에 따라 다릅니다.

1

사용자가 직접 오류 메시지를 제공하는지 여부는 cd이 제공하는 메시지가 해당 기능의 컨텍스트에서 의미가 있는지 여부에 따라 달라집니다. 함수의 기능 집합을 설명하지 않았으므로 메시지를 바꿀 경우 일부 메시지가 더 이해할 수 있는지 여부를 알 수 없습니다.

1

필자는 일반적인 오류 조건을 직접 처리하여 더 나은 오류를 제공하고 흔히 발생하는 오류를 해결합니다. 예를 들어 잘못된 문자열을 자주 입력하면 오류 메시지가 많은 정보를 제공하지 않습니다. 말할 것도없이 : No such directory foo in current directory hierarchy 또는 뭔가. 사실, 이것은 문자열 처리를 시도 할 때 거의 무료로 받아 들여야하는 오류 상태처럼 보입니다. 하지만 권한 오류가 있거나 그동안 전체 트리가 사라져 있거나 다른 것이 있으면 cd 오류를 내보내는 것이 좋습니다.

관련 문제