tmux状態にシェルコマンド出力が表示されない

tmux状態にシェルコマンド出力が表示されない

私は以下を持っています地位の権利:

set -g status-right "#{prefix_highlight}[wifi:#[fg=brightred]#(wifi_status)#[fg=yellow]|#[fg=brightgreen]#{cpu_icon}#[fg=yellow]:#{cpu_percentage}|#{battery_icon}:#{battery_percentage}:#{battery_remain}] %a %h-%d %H:%M:%S#[default]"

そしてその中のカスタムシェルコマンド無線ネットワークの状態

関数を実行します(ワイヤレスネットワーク品質)Wi-Fiの状態を確認してから、以下を使用してください。

wifi_statusこれはファイルがあったときにうまくいきましたが、/usr/local/bin私のドットファイルのバージョン管理リポジトリにありたいので、ファイルを.zsh私のフォルダのbinフォルダに移動し、 $HOME/.zsh/binシェルターミナル(tmuxでも)でこのコマンドを使用しました。これで正しい出力が表示されます。

▁▃▅█

ただし、tmuxステータスバーには表示されなくなります。

どうなりますか?

フォルダがあり、$PATH設定が再ロードされ、端末で動作し、ファイルが実行可能ファイルに設定されました。わかりませんが、今はうまくいかないのはなぜですか?

誰かが質問したので:

ターミナル()tmux newを入力してtmuxを起動します。

私のオペレーティングシステムはOSXです。

xterm2を実行しています。

私のログインシェルは、Oh-My-Zshフレームワークを使用するZSHです。

私のドットファイルは次の場所にあります。ここ

tmuxコマンドライン(プレフィックス)で、次の操作を行います。

set-environment PATH $PATH

PATH変数を設定し、実行中に表示しますshow-environment

フォルダwifi_statusにコピーして貼り付けても問題は解決しませんでした(tmuxを再起動しても)。/usr/local/bin

スクリプトへのフルパスを作成することも役に立ちません。

問題を解決しました。何らかの理由でカスタム関数ファイルが正しく提供されなかったため、実行に失敗しました。関数をファイルに移動すると、問題が解決し、機能します。

ベストアンサー1

あなたを見ている構成.zshrc、includeに複数の環境変数を設定PATHしないでください。このファイルは対話型シェルの起動時に読み取られるため、.zshrcこのファイルに設定されている変数は対話型シェルで起動されたプログラムでのみ使用できます。他の方法、特にGUIメニューで実行されているプログラムでは使用できません。

tmuxをどのように起動したのか言っていませんでした。これらの環境変数は、対話型シェルなしで起動した場合(たとえば、ログイン時間ファイルまたは対話型プロンプトではなくGUI端末内で直接入力するなど)、tmuxtmuxプロセスでは設定されません。

環境変数定義をログイン時に実行されるファイルに移動します。実行されるファイルはログインシェルによって異なりますが、GUIログインの場合は、デプロイメントとディスプレイマネージャに基づいてセッションを開始するためにシステムがどのように設定されているかによって異なります。ほとんどの設定はログイン時にシェルコードを実行するため、~/.profile環境変数定義をここに配置してください。

ログインシェルがbashの場合はそうでないことを確認してください。~/.bash_profileそれ以外の場合は、次の2行のみが含まれます。

. ~/.profile
if [[ $- = *i* ]]; then . ~/.bashrc; fi

ログインシェルがzshの場合は、~/.zprofile次の行を含める必要があります。

emulate sh -c '. ~/.profile'

または、ほとんどのシステムでこれを行うことができます~/.pam_environment。このファイルの構文は、引用符、拡張などVARIABLE=VALUEなしで簡単です。$

詳細については、次を参照してください。環境変数を設定するための最良の distro/shell 独立した方法は何ですか?

おすすめ記事