読者です 読者をやめる 読者になる 読者になる

😃 mattintosh note 📝

Hello Raspberry Pi!

シェルスクリプトの改行区切りテキストを osascript にリストとして渡す

Winetricks で出力したリストを osascript を使ってリストダイアログに表示したいな〜と思ったので。テキストファイルにしてから読めばいんだろうけど勝手がわからないのでとりあえず awk さんのお世話になった。最後のカンマは取り除きにくいので手前につけて cut で先頭のものだけ取り除く。

winetricks $(osascript -e '
tell application "AppleScript Runner"
    choose from list {'"$(winetricks dlls list | awk '{ printf ",\""$0"\"" }' | cut -c2-)"'}
end tell')

※追記:先頭のカンマは取り除かなくてもいいっぽい。

まぁ希望通りと言えば希望通りなんだけどフォントがプロポーショナルだから見づらい。

Winetricks

あとで文字列加工するのも面倒だからタイトルだけでいいかな。

Winetricks


配列を osascript の引数に与える

osascript の引数に配列を与えると argv でリストとして使用できる。IFS の変更が面倒だけどこっちの方が osascript の中はシンプルにできる。

# IFS をバックアップ
_IFS="$IFS"
# IFS を改行のみに変更
IFS=$'\n'
dlls_list=($(winetricks dlls list))
# IFS を戻す
IFS="$_IFS"
# 配列を osascript の引数に与える
osascript -e '
  on run argv
    choose list argv
  end run
' "${dlls_list[@]}"