2017-10-11 5 views
1

Je souhaite que chaque état de la fenêtre inclue des informations sur le répertoire du volet courant, mais je veux le rogner un peu en utilisant awk. J'utilise tmux v1.8 et utilise zsh comme shell.Échec de la commande awk dans tmux window-status-format

J'ai essayé ce qui suit (et toutes sortes d'échappements auxquels je peux penser) mais cela ne fonctionne pas.

set -g window-status-format "#(echo '#{pane_current_path}' | awk -F 'Documents/' '{print $2}')" 

Quelqu'un pourrait m'aider à échapper correctement à ce que cette commande fonctionne? Merci!

+0

où cette chaîne est en cours d'exécution à partir cmd, ou 'ce fichier .cfg' (ou similaire) est-il inclus dans? Tous les shells ont déjà un 'set' cmd, N'avez-vous pas à" envoyer "le cmd à' tmux'? Je ne vois pas cela se produire ici. Juste un deuxième ensemble d'yeux, pas un utilisateur de tmux (évidemment). Bonne chance. – shellter

+0

Ceci est dans le fichier ~/.tmux.conf que tmux utilise pour se configurer. – mikeecb

+0

Cela fonctionne sur tmux v2.5 – mikeecb

Répondre

0

Nous pourrions échapper à des signes dollar dans le formulaire #(shell-command).
Ainsi, $2 pourrait être protégés avec \$2 comme ceci:

set -g window-status-format "#(echo '#{pane_current_path}' | awk -F 'Documents/' '{print \$2}')" 
+0

Cela ne fonctionne pas. Les statuts de la fenêtre sont vides. – mikeecb

+0

Que diriez-vous d'émettre la commande 'mkdir -p/tmp/Documents/test && cd/tmp/Documents/test' et d'obtenir le résultat? Le séparateur de champs pour la commande 'awk' est' Documents/', donc je suppose qu'il est prévu de voir le résultat vide dans les statuts de la fenêtre s'il n'y a pas de' Documents/'dans le' # {pane_current_path} '. – hchbaw