2017-06-29 27 views
0

私はtmuxステータス内に2つの異なるタイムゾーンを表示しようとしています。私は、シェル内で実行されるときに動作するunix dateユーティリティを使用するコマンドを持っています。環境変数をtmuxステータスに設定してください

echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S' && TZ=':Europe/London' date '+%Z %H:%M:%S') 

が生成されますPDT 04:05:59 BST 12:05:59

はしかし、それは私がtmuxの中に、このコマンドを実行すると、変数TZが上書きされている環境のように思えます。

set -g status-right "#(echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S' && TZ=':Europe/London' date '+%Z %H:%M:%S'))" 

ディスプレイ:PDT 04:09:01 PDT 04:09:01は、tmuxのステータスバーに表示されます。

私は一度に1つのローカライズされた日付コマンドを実行する小さなシェルスクリプトを書くことでこれを解決できますが、余分なファイルに依存したくありません。私はevalを使用しようとしましたが、運はありません。どんな助けもありがとう。

更新:

次のようにも動作しません。私の環境では

set -g status-right "#(echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S')) #(echo $(TZ=':Europe/London' date '+%Z %H:%M:%S'))" 

答えて

0

ソリューションはtmuxのはstrftimeの

0

tmuxのステータスバーには、ステータスバーに複数行の出力を表示することはできません。出力の最初の行だけが表示されます。だから私は改行なしで日付を印刷し、出力を連結しなければならない。

set -g status-right "#(echo -n $(TZ=':US/Pacific' date '+%Z %H:%M:%S ') && echo -n ' ' && echo -n $(TZ=':Europe/London' date '+%Z %H:%M:%S'))" 
+0

を通じて回通過する際に、私は問題がステータスバーに複数行の出力に関してれるとは思わないよう別の%と%をエスケープすることです。複数のコマンドで構成されている別のtmuxステータスバーの設定を表示するように質問を更新しました。 – mikeecb

+0

しかし私の環境で動作します。申し訳ありませんが、私は問題を知らない、多分私は把握するために時間がかかる必要があります。たぶん私はそれを理解することができませんでした。 @mikeecb – zhenguoli

関連する問題