2014-09-19 60 views
0

我已設法湊齊了一起:如何將變量添加到Mac OS X上的通知中心?

您可以在終端運行它,它是無害的,並且將輸出結果只通知中心:

osascript -e 'display notification "The url(s) are on your clipboard from Droppings.app" with title "Droppings has finished sharing your file(s)" subtitle "Some Some title"' 

理想情況下,我想補充pbpaste在「某些標題」部分,但我得到了文字字符串。我試着創建一個變量,但仍然獲得文字字符串。

我試着將整個字符串建立爲一個變量,它在終端中,echo'd出來的工作,但在通知中心,我得到的實際文字變量作爲一個字符串。

對此提出建議?

回答

1

我覺得這句法很容易,而不是單退出,兩雙引述扭曲:

echo pbcopiedtext | pbcopy 

echo display notification \"Message is $(pbpaste)\" with title \"Funky Title\" | osascript 
+0

謝謝你,我喜歡你的方法更好呢!它使我能夠處理其他語言的很多代碼,並且只是通過管道傳輸AppleSript。謝謝! – Scott 2014-10-16 11:46:50

0

在shell中,單引號(')中的任何內容都是逐字記錄的。沒有替換被執行。

可以使用這樣的替換剪貼板內容到字符串:

osascript -e 'display notification "The url(s) are on your clipboard from Droppings.app" with title "Droppings has finished sharing your file(s)" subtitle "Some title '"$(pbpaste)"'"' 

我結束了單引號,打開一個雙引號(單個參數,以便粘貼板中的內容將被視爲部分即使它包含空格),替換pbpaste命令的輸出,關閉雙引號,重新打開單引號,然後重新開始字符串的其餘部分。

這是有效的,除非如果粘貼板內容包含osascript(即AppleScript)視爲特殊的東西(如引號字符),這會影響osascript如何解析生成的文本。爲了解決這個問題,你必須逃離紙板內容以防止AppleScript解釋,這超出了這個問題的範圍。

相關問題