Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2912

bashのコマンドプロンプトにCPUの温度を表示させてみる。

$
0
0
きっかけ もう2021年の年末の話だけど、前回のラズパイのケースを自作してみた。で熱対策を全く考えてなかったのでちょっと心配。 実際、訓練中にラズパイがうんともすんとも言わなくなって、熱暴走を疑うことも。 どうする 別売りでファンが売ってるし温度設定すればで自動的に回るし。。。。ポチッとで解決? いやいや、ショルコマンドの勉強にもなるし、CPUをコマンドプロンプトに表示さえできるようにすれば、CPUの温度が高くなればケースの蓋開ければいいんだし、それでいいんじゃない? どうしたら出来る? CPUの温度を知る方法を調べて それをコマンドプロンプトへ反映させる の2つのことができれば実現出来るかと。 懐かしいなぁ「コマンドプロンプト」だって、MS-DOSでもやった気がするな、config.sysだっけautoexec.batだっけ。。。遠い目。。。 1 CPUの温度を知る方法 pi@samisnotmaydog:~ $ vcgencmd measure_temp temp=58.0'C pi@samisnotmaydog:~ $ vcgencmd measure_tempこれはググればすぐ出てきました。 ラズパイって4コアなんだ、おぉコアごとの情報も見れるんだ。。。 を参考にいたしました。 2 コマンドプロンプトへの反映 まず表示は温度だけでいいよね いちいちvcgencmd measure_tempって入力するの嫌だし cputemp.shファイルを作って #!/bin/bash vcgencmd measure_temp  | cut -c 6- cut -c 6-で最初のtemp=をカット 名前もcputempにして実行権限つけて pi@samisnotmaydog:~ $ chmod 777 cputemp フムフムコマンドプロンプトにはPROMPT_COMMANDで反映できると、じゃもう出来ちゃったじゃない。 pi@samisnotmaydog:~ $ PROMPT_COMMAND="cputemp" なんか違う pi@samisnotmaydog:~ $ PROMPT_COMMAND="cputemp" 58.0'C pi@samisnotmaydog:~ $ 58.0'C pi@samisnotmaydog:~ $ リターンごとに温度はアップデートされるのはいいんだけど、2段になってしまう。 おまけに、ターミナルを起動するごとにPROMPT_COMMANDに登録しないといけない ちょっと違う、これは絶対違う。。。 .bashrcに書いてしまおう プロンプトの書式は起動時に.bashrcを読み込んだ際に設定される筈だよね?DOSと一緒だよね? でも、.bashrcの中は初心者にはナニがナニやら。。。 でもなんとなく、 if [ "$color_prompt" = yes ];then         PS1= 〜ほにゃらら〜 のところだよね多分、いや絶対。 PROMPT_COMMAND の他にも PS1を書き換えるとプロンプト変えれるみたいだし その前に、ターミナルからPS1の値を表示させてみると pi@samisnotmaydog:~ $ echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]($(cputemp)):\[\033[01;34m\]\w \$\[\033[00m\] となったので、多分この何処かに先ほどのcputempの値を表示する変数を挿入するといけそうな気がするな。 この出力のやたら多い\やら]やらはエスケープシーケンスの一部らしいから、よくよく読んでみると、そんなに難しいことでも無かったけど、今回はスルー。 こうゆうのが初心者にとってネックだったりするのよね、壁よ壁ね。 以下の記事が大変参考になりました、ありがたいです。 そんでもって、みなさんGitのリポジトリ?、いやブランチを同じようにコマンドプロンプトに表示させておられる様子なので以下の記事を参考にさせていただいてですね。 cputemp ではなくて$(cputemp)を以下のように仕込んでみたならば pi@samisnotmaydog:~ $ PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]($(cputemp)):\[\033[01;34m\]\w \$\[\033[00m\]' pi@samisnotmaydog(59.6'C):~ $ と見事にプロンプトに表示できることが確認できた、ヤッター。 先ほどの.bashrcを開いて、同じように書きこんで確認。 pi@samisnotmaydog(63.4'C):~ $ これで、いちいちvcgencmd measure_tempとか自作のcputempとかを打ち込まなくてもCPU温度が監視できるようになりましたとさ。 めでたしめでたし 11月にポリテクセンターに入所して、毎月Qiitaに投稿する目標を立てたものの、訓練所の復習や並行して進めている資格の取得に時間を取られて、当初考えていたペースでは投稿できなくなってしまっているのが実情です。 これも、11月の終わり頃に実作業はほとんど終えていて、下書きのまま放置してしまっていました。 まだ、ネタはあるので、時間を見つけては投稿するつもりです。

Viewing all articles
Browse latest Browse all 2912

Trending Articles