OS X 명령 줄에서 잘못된 ctag가 호출 됨

패트릭 사난

활기찬 ctags를 사용하고 싶습니다. 그러나 OS X 10.9에서 기본값은 다른 바이너리를 호출하는 것 같습니다./Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags

나는 쉽게 MacPorts에서 풍부한 ctag를 얻을 수 sudo port install ctags있으며 내 경로는 /opt/local/bin(내 경로의 첫 번째 위치)에서 새 바이너리를 사용할 수 있도록 올바르게 설정된 것 같습니다.

$ which ctags
/opt/local/bin/ctags

그러나 실행하면 ctags여전히 XCode.app. 물론 which ctags전체 경로로 올바른 바이너리를 사용 하고 호출 할 수 있지만 경로가 제대로 작동하지 않는 이유에 대해 혼란 스럽습니다.

이 경우 결과가 which실제로 어떤 바이너리가 실행되는지 지정하지 않는 이유는 무엇 입니까?

업데이트 : 새 bash 셸을 시작하면 문제가 해결되었습니다. 아마도 실행 파일의 이름이 어딘가에 캐시되어 있었는데, 앞으로 이런 일이 발생하지 않도록하려면 어떻게해야합니까?

larsks

쉘이 명령의 위치를 ​​캐싱하는 것을 막을 수는 없습니다 . 이것은 일반적으로 성능상의 이유로 수행됩니다. 그러나 요청시 쉘이이 캐시를 새로 고치도록 강제 수 있습니다 . 를 사용 bash하면 hash명령을 사용하여이 명령 캐시를 조작 할 수 있습니다. 달리는:

hash mycommand

셸이에 대한 저장된 위치를 업데이트하도록합니다 mycommand. 예를 들어, 다음으로 $PATH시작하는 경우 :

$HOME/bin/A:$HOME/bin/B

그리고 mycommand$ HOME / bin / B에 판매 스크립트를 넣었습니다 .

#!/bin/sh
echo This is B.

그리고 실행 mycommand하면 다음을 얻습니다.

$ mycommand
This is B.

나는 그 같은 이름의 스크립트를 작성하는 경우 $HOME/bin/A:

#!/bin/sh
echo This is A.

그런 다음 실행 하면 캐시 된 위치를 사용하고 mycommand있음을 알 수 bash있습니다.

$ mycommand
This is B.

그런 다음 hash명령 을 사용 bash하면 위치 업데이트가 표시됩니다.

$ hash mycommand
$ mycommand
This is A.

PATH환경 변수를 변경하면 bash바이너리의 캐시 된 위치를 잊어 버릴 수도 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

OS X 10.8.3에 잘못된 파티션 크기가 표시됨

분류에서Dev

MAC OS X 잘못된 명령 u에서 sed 오류

분류에서Dev

UITableViewCell에서 호출 된 UIActivityViewController가 잘못 표시됨

분류에서Dev

for 루프의 tar 명령이 잘못된 번호에서 시작됨

분류에서Dev

생성자가 잘못된 시간에 호출 됨

분류에서Dev

잘못된 BindingHandler가 호출 됨

분류에서Dev

서명 차이로 인해 잘못된 자식 클래스 함수가 호출 됨

분류에서Dev

두 번째 생성자가 C ++에서 호출 됨 (잘못된 출력)

분류에서Dev

Angular 10 및 RxJ에서 잘못된 동작 유형 또는 잘못된 감속기가 호출 됨

분류에서Dev

gRPC 단항 호출에서 'start_batch가 잘못 호출 됨'

분류에서Dev

Tail 명령-fseek () 및 getline () 사용-순서가 잘못된 출력

분류에서Dev

차트에서 X 축에 잘못된 날짜가 표시됨

분류에서Dev

서명이 잘못된 main () 함수가 호출됩니다.

분류에서Dev

onCreate () 및 onPause ()가 다른 활동에서 잘못 호출 됨

분류에서Dev

결과가 없을 때 배열 변수에 잘못된 명령 결과 길이가 표시됨

분류에서Dev

.net 원격, 델리게이트가 잘못된 프로세스에서 호출 됨

분류에서Dev

c ++-잘못된 소멸자가 호출 됨

분류에서Dev

잘못된 컨트롤러 함수가 호출 됨

분류에서Dev

잘못된 템플릿 함수가 호출 됨

분류에서Dev

명령 줄 Mac OS X를 통해 암호가있는 인증서 추가 / 가져 오기

분류에서Dev

FFMPEG : 이미지가 잘못된 FPS에서 잘못로드 됨

분류에서Dev

SWT Canvas PaintListener ()가 잘못 호출 됨

분류에서Dev

`*`를 전달할 때 잘못된 명령 줄 인수 번호

분류에서Dev

잘못된 에코 명령

분류에서Dev

ExpandableListAdapter에 잘못된 childView가 표시됨

분류에서Dev

UIImageView가 잘못된 UITableViewCell에 표시됨

분류에서Dev

Vectr가 시작되지 않음 : 잘못된 명령 (코어 덤프 됨)

분류에서Dev

nodejs에서 명령이 호출 된 폴더 가져 오기

분류에서Dev

책갈피가있는 명령 줄에서 Internet Explorer 호출

Related 관련 기사

  1. 1

    OS X 10.8.3에 잘못된 파티션 크기가 표시됨

  2. 2

    MAC OS X 잘못된 명령 u에서 sed 오류

  3. 3

    UITableViewCell에서 호출 된 UIActivityViewController가 잘못 표시됨

  4. 4

    for 루프의 tar 명령이 잘못된 번호에서 시작됨

  5. 5

    생성자가 잘못된 시간에 호출 됨

  6. 6

    잘못된 BindingHandler가 호출 됨

  7. 7

    서명 차이로 인해 잘못된 자식 클래스 함수가 호출 됨

  8. 8

    두 번째 생성자가 C ++에서 호출 됨 (잘못된 출력)

  9. 9

    Angular 10 및 RxJ에서 잘못된 동작 유형 또는 잘못된 감속기가 호출 됨

  10. 10

    gRPC 단항 호출에서 'start_batch가 잘못 호출 됨'

  11. 11

    Tail 명령-fseek () 및 getline () 사용-순서가 잘못된 출력

  12. 12

    차트에서 X 축에 잘못된 날짜가 표시됨

  13. 13

    서명이 잘못된 main () 함수가 호출됩니다.

  14. 14

    onCreate () 및 onPause ()가 다른 활동에서 잘못 호출 됨

  15. 15

    결과가 없을 때 배열 변수에 잘못된 명령 결과 길이가 표시됨

  16. 16

    .net 원격, 델리게이트가 잘못된 프로세스에서 호출 됨

  17. 17

    c ++-잘못된 소멸자가 호출 됨

  18. 18

    잘못된 컨트롤러 함수가 호출 됨

  19. 19

    잘못된 템플릿 함수가 호출 됨

  20. 20

    명령 줄 Mac OS X를 통해 암호가있는 인증서 추가 / 가져 오기

  21. 21

    FFMPEG : 이미지가 잘못된 FPS에서 잘못로드 됨

  22. 22

    SWT Canvas PaintListener ()가 잘못 호출 됨

  23. 23

    `*`를 전달할 때 잘못된 명령 줄 인수 번호

  24. 24

    잘못된 에코 명령

  25. 25

    ExpandableListAdapter에 잘못된 childView가 표시됨

  26. 26

    UIImageView가 잘못된 UITableViewCell에 표시됨

  27. 27

    Vectr가 시작되지 않음 : 잘못된 명령 (코어 덤프 됨)

  28. 28

    nodejs에서 명령이 호출 된 폴더 가져 오기

  29. 29

    책갈피가있는 명령 줄에서 Internet Explorer 호출

뜨겁다태그

보관