시간은 논쟁을 받아들이지 않는다

시간은 논쟁을 받아들이지 않는다

time을 설치했는데 사용하면 기본 형식이 아닌 이식 가능한 형식이 됩니다. 설치할 때 GNU 시간 1.7 또는 1.72라고 말한 것 같습니다.

다음과 같은 명령

time --help
time --version

"명령을 찾을 수 없음" 오류로 인해 실패합니다. TIME 환경 변수가 설정되지 않았습니다. 시간은 왜 이렇게 움직이는 걸까요?

답변1

쉘이 일반적으로 명령을 찾는 방법에 대해서는 Jesse_b가 정확하지만 더 쉬운 수정 방법이 있습니다.

\time --version

Bash, ksh, zsh 및 일부 다른 일반적인 쉘은 경로가 없는 명령의 선행 백슬래시를 "이에 대한 PATH 보기 건너뛰기"로 처리한다고 생각합니다.

또한 내장된 시간이 무엇인지 알면 다음을 실행하여 이 문제를 해결할 수도 있습니다.

time time --version

결국 no such option 오류 대신 명령을 찾을 수 없다는 오류가 발생하는 이유는 쉘 내장이 다음 명령을 실행하고 완료 시 실행하는 데 걸린 시간을 확인하기 때문입니다. 이는 /bin/time과 동일합니다. .

논쟁할 시간이 있을 것으로 예상한다면...몇시인지 궁금하십니까? 그게 date명령이니까.

답변2

사용:

\command builtin type time

time실행 중인 버전을 확인하세요 .

이것은 편집증적인 버전입니다. 일반적으로 type time충분하지만 위의 접근 방식으로 피할 수 있습니다 alias type=echo.

time애플리케이션의 모든 바이너리 버전 을 보려면 $PATH.which -a time

답변3

명령을 찾을 때 쉘은 다음 기본 설정을 사용합니다.

  1. 별명
  2. 변수에 할당하기 전 매개변수 확장, 명령 대체, 산술 확장 및 따옴표 제거
  3. 기능
  4. 내장 명령
  5. 해시 테이블
  6. 찾다PATH

timetime따라서 해당 키워드는 에서 사용되는 것 보다 우선적으로 사용됩니다 PATH. 예를 들어 별칭을 사용하여 이 문제를 해결할 수 있습니다.

alias time=/usr/bin/time

(경로가 설치한 위치에 따라 달라지는지 확인하세요.)

관련 정보