figlet
の存在をフィッシュシェルスクリプトでテストしようとしています バイナリ。 LinuxとOSXを使用しているため、ファイルが同じ場所にあることに依存できず、動的に解決する必要があります。私は$(which)
でこれを行うことに慣れています 動作するbashで。
これは適切に機能しませんが、魚の場合。なぜですか?
function print_hostname --description 'print hostname'
if test -x (which figlet)
hostname | figlet
end
end
承認された回答:
type
を使用する fish
ボーンのようなシェルのように:
if type -q figlet
hostname | figlet
end
または、$PATH
内の実行可能ファイルに制限します (関数、組み込みを無視):
if command -s figlet > /dev/null
hostname | figlet
end