Tmux 配置作为 shell 输入参数回显

Tmux 配置作为 shell 输入参数回显

晚上好,我的 tmux 配置遇到了一个相当奇怪的问题(至少我以前从未遇到过这样的问题)。几天前,我对我的 tmux 配置文件进行了一些修改,现在状态栏配置如下:

# show , cpu usage, free memory, fan speed and core temp on right side 
set -g status-right-length 70
CPU="#[bg=colour3 fg=colour247] cpu #(vmstat | tail -n 1 | awk '{s = $13 + $14} END {print s}')% "
MEM="#[bg=colour3 fg=colour247]mem #(free -h | grep Mem | awk '{print $7}') "
TMP="#[bg=colour116 fg=colour247] temp #(sensors | grep 'Core 0' | awk '{print $3}') #(sensors | grep 'Core 1' | awk '{print $3}')"
BAT="#[bg=colour116 fg=colour247] batt #(battery-level | awk '{print $1}') "
set -g status-right $CPU$MEM$TMP$BAT

过了一段时间,我发现系统中创建了一些目录,名为:"#[bg=colour116 fg=colour247] temp #(sensors | grep 'Core 0' | awk '{print $3}') #(sensors | grep 'Core 1' | awk '{print $3}')"

然而,手动删除后它们就不再出现。

现在我正在尝试使用提取项目的编译指令。现在,当 tmux 处于活动状态时,bear make会失败并出现以下错误:

bear: Something unexpected had happened.
Traceback (most recent call last):
  File "/usr/bin/bear", line 65, in main
return capture(args)
  File "/usr/bin/bear", line 105, in capture
with temporary_directory(prefix='bear-', dir=tempdir()) as tmpdir:
  File "/usr/lib/python3.5/contextlib.py", line 59, in __enter__
return next(self.gen)
  File "/usr/bin/bear", line 78, in temporary_directory
name = tempfile.mkdtemp(**kwargs)
  File "/usr/lib/python3.5/tempfile.py", line 507, in mkdtemp
_os.mkdir(file, 0o700)
FileNotFoundError: [Errno 2] No such file or directory: "#[bg=colour116 fg=colour247] temp #(sensors | grep 'Core 0' | awk '{print $3}') #(sensors | grep 'Core 1' | awk '{print $3}')/bear-wfyf2hzz"

这让我相信我的 tmux 配置以某种方式作为 python 的参数被回显tempfile.py mkdtemp,但我真的不明白发生了什么。有人能帮我吗?

答案1

TMP="#[bg=colour116 fg=colour247] temp #(sensors | grep 'Core 0' | awk '{print $3}') #(sensors | grep 'Core 1' | awk '{print $3}')"

您定义了一个与环境变量同名的变量TMP,因此覆盖了其内容。Python 正在尝试在文件夹内创建一个子目录,$TMP但该目录的值已设置为上述值。

为了解决这个问题,请将其名称更改为不同的、可能唯一的名称,例如TMUX_TEMP

相关内容