쉘 스크립트의 경우 경로에 관계없이 실행 파일을 이름으로 호출해야 합니다. 지금까지 이 코드는 올바른 이름을 보고합니다.
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
대신 저장 내용을 찾을 수 없는 경우 직접 수행해야 합니다. 어떤 경우 에라도,hash
program
당신은 사용하고 싶지 않아which
.