通常、.bashrcファイルを追加するなどの方法で変更して、コンピュータの時計のタイムゾーンを設定します。TZ='America/Los_Angeles'; export TZ
これによりdate
、呼び出されるたびに正しいタイムゾーンの正しい時間が返されます。しかし、awesomeをナビゲートした後、echo $TZ
awesomeで実行すると、echo $TZ
私の端末で実行したときとは異なる結果が返されるようです。
lua replのすべてのインスタンスecho $TZ
も正しいタイムゾーンを返すようです(.bashrcに従って)。
プログラム間のタイムゾーンをどのように同期しますか?
答え1
問題は、TZ
正しいファイルに環境変数を定義しないことです。~/.bashrc
対話型シェルの構成ファイル。インタラクティブシェルに含めたいエイリアス、キーバインディング、その他のアイテムのための場所です。そこで環境変数を定義できますが、変数は対話型シェルで実行されているプログラムでのみ設定できます。これには、ウィンドウマネージャとウィンドウマネージャが起動したプログラムはすべて除外されます。
したがって、適切な場所に環境変数を定義します。非グラフィックログインの場合、正しい場所はです~/.profile
。グラフィカルモードでログインするときの正しい場所は、展開、ディスプレイマネージャ、セッション、またはウィンドウマネージャによって異なります。 Ubuntuでは、すべてのディスプレイマネージャが~/.profile
読み取り可能に設定されていると思います。だから環境変数の定義~/.profile
。
このトピックは何度も言及されました。すべてのシェルが読める「.bashrc」に対応するファイルはありますか?
状況に応じて、もう1つの可能性は、Awesome設定ファイル()で環境変数を定義することですos.setenv('TZ', 'America/Los_Angeles')
。サインアウトしてから再度ログインせずにタイムゾーンを変更したい場合(ノートブックで旅行する場合)、Awesomeが最善の選択です。