#macos #growl #growlnotify
#macos #growl #growlnotify
Вопрос:
С помощью growlnotify
как я могу отобразить несколько строк текста из командной строки?
Косая черта-n — n
— похоже, это не работает:
growlnotify -t title -m "messageline1nmessage2"
Я просто получаю сообщение messageline1nmessage2
Ответ №1:
Предполагаемый экранированный перевод новой строки не интерпретируется growl как таковой — он просто трактуется как буквенная косая черта, за которой следует ‘en’.
Вы можете заставить оболочку вставить новую строку в строку таким образом:
growlnotify -t title -m "messageline1"$'n'"message2"
Смотрите (например) Unix command sh:
Слова вида $’string’ обрабатываются особым образом. Слово расширяется до строки с заменой символов, экранированных обратной косой чертой, в соответствии со стандартом ANSI C.
Ответ №2:
Я нахожу, что в сценариях проще и гораздо удобочитаемее использовать небольшую функцию и echo
‘s -e
option:
mynotify () {
for m in "$@"; do
local msg="$msgn$m"
done
echo -e "$msg" | growlnotify -t "My Title"
}
mynotify "This is line 1" "Line 2" "The 3d line ends with an extra newlinen" "Line 4"