Fish 쉘 스크립트에 바이너리 파일이 있는지 테스트하려고 합니다 figlet
. 저는 Linux와 OS X를 사용하고 있기 때문에 파일이 동일한 위치에 있다고 믿을 수 없으며 동적으로 해결해야 합니다. 나는 $(which)
bash에서 이 작업을 수행하는 데 익숙하며 작동합니다.
그러나 물고기의 경우 이는 제대로 작동하지 않습니다. 왜?
function print_hostname --description 'print hostname'
if test -x (which figlet)
hostname | figlet
end
end
답변1
type
fish
Bourne과 같은 쉘 에서 사용됩니다:
if type -q figlet
hostname | figlet
end
또는 실행 파일로 제한합니다 $PATH
(함수, 내장 함수 무시).
if command -s figlet > /dev/null
hostname | figlet
end
당신은 또한 볼 수 있습니다" which "를 사용하지 않는 이유는 무엇입니까? 그러면 무엇을 사용해야 합니까?