2016-10-17 13 views
1

In meinem Skript möchte ich ein neues Fenster öffnen, um den Inhalt einer Variablen anzuzeigen. Ich habe zwei halbgaren Ideen:Ausgabe in ein anderes Fenster umleiten

  1. So etwas wie printf "%s\n" "$data" | xterm -e less (nicht funktioniert). Ist es möglich, die Ausgabe irgendwie umzuleiten, oder muss ich eine temporäre Datei verwenden?

  2. Etwas wie xterm -e 'printf "%s\n" "'"$data"'" | less', aber das führt zu Problemen, wenn $data etwas enthält, das maskiert werden muss.

Antwort

0

Versuchen Sie dieses Äquivalent Beispiel (hinzugefügt leere Räume, sondern nur die Art und Weise zu zeigen, die einzelnen Strings in Anführungszeichen verketteten sind erhalten):

export data='embedded " double quote' 
export data="$data embedded ' singlequote" 
echo 'printf "%s\n" ' '"$data"' ' | less' 

Ergebnisse in:

printf "%s\n" "$data" | less 

das ist, was Xterm würde sehen (genau wie Echo oben).

+0

Mein Beispiel 2 wird fehlschlagen, wenn $ Daten ein '" 'hat. – mkj

0

Verwenden Sie xless, xmore oder xmessage, je nachdem, welche Sie installiert haben.

eine dieser Versuchen:

printf "%s\n" "$data" | xless

printf "%s\n" "$data" | xmore /dev/stdin

printf "%s\n" "$data" | xmessage -file -

Verwandte Themen