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