기본 이름 없이 출력 디렉터리를 정리하는 방법은 무엇입니까?

기본 이름 없이 출력 디렉터리를 정리하는 방법은 무엇입니까?

쉘 스크립트의 경우 경로에 관계없이 실행 파일을 이름으로 호출해야 합니다. 지금까지 이 코드는 올바른 이름을 보고합니다.

tmpprog=`which program`
prog=${tmpprog%%*/}
if $prog=""
then
  echo >&2 "Main Program not found"
else
  echo >&2 "$prog"
fi

실행 파일 이름을 유지하고 경로를 한 줄로 제거하기 위해 경로를 다듬을 수 있도록 코드를 어떻게 자르나요?

참고: basename혼합 환경(windoze의 cygwin/busybox)에서 작업 중일 수 있고 때로는 경로에 공백이 있기 때문에 이 작업을 수행하지 않습니다.

답변1

program명령으로 사용할 수 있는지 확인한 후 다음을 수행하면 됩니다 .

#! /bin/sh -
hash program || exit

# use program now:
program with its args

나는 그것을 사용하고 있다hash오류를 보고하는 command -v > /dev/null대신 저장 내용을 찾을 수 없는 경우 직접 수행해야 합니다. 어떤 경우 에라도,hashprogram당신은 사용하고 싶지 않아which.

관련 정보