2

コマンドラインから複数行のテキストを表示するgrowlnotifyにはどうすればよいですか?

Slash-n ---\nこのように機能しないようです:

growlnotify -t title -m "messageline1\nmessage2"

メッセージが届きますmessageline1\nmessage2

4

2 に答える 2

2

意図されたエスケープされた改行は、うなり声によってそのように解釈されません-それは文字通りのスラッシュとして扱われ、その後に「en」が続きます。

この方法で、シェルに文字列に改行を挿入させることができます。

growlnotify -t title -m "messageline1"$'\n'"message2"

(例)Unixコマンドshを参照してください。

$'string'の形式の単語は特別に扱われます。単語は文字列に展開され、バックスラッシュでエスケープされた文字がANSIC標準で指定されているように置き換えられます。

于 2011-11-14T23:28:53.030 に答える
0

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"
于 2012-07-12T13:15:50.513 に答える