デフォルト名なしで出力ディレクトリをクリーンアップする方法は?

デフォルト名なしで出力ディレクトリをクリーンアップする方法は?

シェルスクリプトの場合は、パスに関係なく実行可能ファイルを名前で呼び出す必要があります。これまで、このコードは正しい名前を報告しています。

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

実行可能ファイル名を保持し、パスを1行に削除するためにパスをトリミングできるようにコードをどのように切り捨てますか?

注: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

関連情報