Использование growlnotify как отобразить несколько строк текста из командной строки?
growlnotify
Slash-n - \n - похоже, это не работает:
\n
growlnotify -t title -m "messageline1\nmessage2"
Я просто получаю сообщение messageline1\nmessage2
messageline1\nmessage2
Намеренный экранированный символ новой строки не интерпретируется как таковой рычагом - он рассматривается как буквальная косая черта, за которой следует 'en'.
Вы можете заставить оболочку вставить новую строку в строку таким образом:
growlnotify -t title -m "messageline1"$'\n'"message2"
См. (Например) Unix-команда sh :
Слова вида $ 'string' обрабатываются специально,Слово расширяется до строки, символы с обратной косой чертой заменяются в соответствии со стандартом ANSI C.
Мне кажется, что в сценариях проще и намного удобочитаемее использовать небольшую функцию и опцию echo -e:
echo
-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"