ターミナルからAppleScriptスクリプトを実行しようとしていますが、を呼び出しても何も印刷できません。
osascript myFile.scpt "/path/to/a/file"
私はしようとしています:
on run fileName
set unique_songs to paragraphs of (read POSIX file fileName)
repeat with nextLine in unique_songs
if length of nextLine is greater than 0 then
set AppleScript's text item delimiters to tab
set song to text item 2 of nextLine
set artist to text item 3 of nextLine
set album to text item 4 of nextLine
set output to ("Song: " & song & " - " & artist & " - " & album)
copy output to stdout
end if
end repeat
end run
タブ区切りファイルは次のようにフォーマットされています。
1282622675 Beneath the Balcony Iron & Wine The Sea & the Rhythm
1282622410 There Goes the Fear Doves (500) Days of Summer
1282622204 Go to Sleep. (Little Man Being Erased.) Radiohead Hail to the Thief
タブは実際にはうまく表示されていません:(
ターミナルでどのように実行しようとしているのかは明確ではありません。ただし、AppleScriptテキストファイルを#!/usr/bin/osascript
Shebang で保存し、ファイルを実行できるようにchmod
したと仮定します。
次に、ファイルへのパスを使用して、ターミナルでファイルを呼び出します。
#!/usr/bin/osascript
#Here be the rest of your code ...
set output to ("Song: " & song & " - " & artist & " - " & album)
do Shell script "echo " & quoted form of output
end tell
Update2、コメントへの応答。
次のような内容のタブ区切りのテキストファイルがある場合:
track Skin Deep Beady Belle Closer
タブは次のように設定されます:track **** TAB **** Skin Deep **** TAB **** Beady Belle **** TAB **** Closer
そして、スクリプトファイルは次のとおりです。
on run fileName
set unique_songs to paragraphs of (read POSIX file fileName)
repeat with nextLine in unique_songs
if length of nextLine is greater than 0 then
set AppleScript's text item delimiters to tab
set song to text item 2 of nextLine
set artist to text item 3 of nextLine
set album to text item 4 of nextLine
set output to ("Song: " & song & " - " & artist & " - " & album)
do Shell script "echo " & quoted form of output
end if
end repeat
end run
次に、ターミナルで実行します。
/usr/bin/osascript ~/Documents/testOsa2.scpt ~/Documents/testTab.txt
私は戻ってきます:
*Song: Skin Deep - Beady Belle - Closer*
#!/usr/bin/osascript
を指定してAppleScriptを実行する場合、スクリプトの最後にあるreturnステートメントを使用して目的のテキスト出力を返すことができます。