【shell】AppleScriptでダイアログを実行して返り値を取得する方法

実行する時に、注意しないといけないシェルファイルがあった。

そこで、実行時に確認をとることにした。

read -p "OK? $0 (y/n) :" YN
if [ "${YN}" = "y" ]; then
  echo "[confirm OK!]"
else
  exit 1;
fi

しかし、CLI で 入力するのは面倒だったので、

AppleScript で、ダイアログを呼ぶことにした。

shellで、「OK」と「NG」のどちらのボタンを押したか返り値が欲しかったので、

以下のようにした。

AS="button returned of (display dialog \"実行OK?\" buttons {\"OK\", \"CANCEL\"} default button 2 with icon caution)"
RTN=`osascript -e "${AS}"`

if [ "${RTN}" = "OK" ]; then
  echo "[confirm OK!]"
else
  exit 1;
fi