2

特定のファインダー ウィンドウを閉じるための bash スクリプトを作成しようとしています (MacOSX を使用しています)。残念ながら、スクリプトは、最初のウィンドウが開いていないことが判明するとすぐに終了します。(例: 「通信」というタイトルのウィンドウは開いていませんが、「エディタ」ウィンドウは開いています。ウィンドウは閉じられていません)。Communicationというタイトルのウィンドウを開くと、ウィンドウは閉じますが、最初のコマンドが失敗した後は何もありません。exit と on error を試し、「set -e」を取り出してみましたが、何も機能していないようです。これが私のスクリプトです:

#!/bin/bash
set -e
osascript <<EOF
tell application "Finder"
  close window "Communication"
  close window "Editors"
  close window "Gaming"
  close window "Music"
  close window "Technical"
  close window "Text Editors"
  close window "Utilites"
  close window "Camera"
  close window "External"
  close window "TAB Actual"
end tell

それは私に与えます

error: 24:57: execution error: Finder got an error: Can't get window <"first window found to not be open">. (-1728) (1)

これが何かを意味するかどうかはわかりませんが、コードは Automator を介して実行されています。

私を助けてくれる人に感謝します。はい、私は bash が初めてです。

4

2 に答える 2

1

ignoring application responsesたとえば、次のステートメントを使用できます。

#!/bin/bash
set -e
osascript <<EOF
tell application "Finder"
  ignoring application responses
    close window "Communication"
    close window "Editors"
    # More windows here...
  end ignoring
end tell

Applescript 言語ガイドの制御ステートメントの詳細: https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html

于 2014-11-15T21:41:19.557 に答える
0

これが try ステートメントの目的です。

set windowNames to {"Communication", "Editors", "Gaming"}

tell application "Finder"
    repeat with wName in windowNames
        try
            close window wName
        end try
    end repeat
end tell
于 2014-11-15T22:49:03.497 に答える