2016-10-17 2 views
1

Dans mon script, je souhaite ouvrir une nouvelle fenêtre pour afficher le contenu d'une variable. J'ai deux idées bancales:Rediriger la sortie vers une autre fenêtre

  1. Quelque chose comme printf "%s\n" "$data" | xterm -e less (ne fonctionne pas). Est-il possible de rediriger la sortie en quelque sorte, ou dois-je utiliser un fichier temporaire?

  2. Quelque chose comme xterm -e 'printf "%s\n" "'"$data"'" | less', mais cela conduit à des problèmes si $data contient quelque chose qui doit être échappé.

Répondre

0

Essayez cet exemple équivalent (ajouté des espaces vides, juste pour montrer la façon dont les chaînes entre guillemets simples sont obtenir concaténés):

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

résultats dans:

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

C'est ce que xterm verrait (juste comme l'écho ci-dessus).

+0

Mon exemple 2 échouera si les données $ a '" '. – mkj

0

Utilisez xless, xmore ou xmessage, en fonction de ce que vous avez installé.

Essayez l'un de ces:

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

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

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