Freenode上的用户#tmux问:
如何使用set -g tmux status-right
的GNU awk正确转义此shell命令?
sensors | awk '/^Physical id 0:/ { s = $4; sub(/^+/, "", s); print s; exit }'
结果应为45.0°C
。
另外,我们如何才能每30秒更新一次?
sensors
的输出:
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +45.0°C (high = +80.0°C, crit = +100.0°C)
...
答案 0 :(得分:3)
#( )
进行引用
引用在tmux #( )
中很复杂,因为内容为evaluated twice。
出于这个原因,我们将gawk程序简化为:
sensors | awk '/^Physical id 0:/ { sub(/^+/, "", $4); print $4; exit }'
现在我们将其插入.tmux.conf
:
set-option -g status-right "#( sensors | awk \\' /Physical id 0:/ { sub\\(/\+/,\"\",$4\\); print \$4; exit } \\')"
但是,下次修补时,阅读和更改非常复杂......
最简单的解决方案是将shell命令放入文件并从tmux中调用它。
〜/斌/ TMUX-status.bash:
#!/bin/bash
sensors | awk '/^Physical id 0:/ { sub(/^+/, "", $4); print $4; exit }'
〜/ .tmux.conf:
set-option -g status-right "#(bash ~/bin/tmux-status.bash)"
set-option -g status-interval 30