首页 > 解决方案 > 转义字符串时遇到问题:Powershell -> Bash -> More Bash

问题描述

我正在研究 Powershell 7 和 WSL/bash。

根据本网站上的另一个答案,我创建了自己的仿冒版本watch,能够显示更多颜色。到目前为止,它工作正常。它看起来像这样:

while sleep 1; do
   x="$("$@" 2>&1)"
   clear
   echo "$x"
done

我正在尝试传递以下命令my_watch以使其重复:

task rc.defaultwidth=$(tput cols)

在 Powershell/WSL 中看起来像这样:

wsl ~/my_watch 'task rc.defaultwidth=$(tput cols)'

问题是$(tput cols)评估得太早了,我认为就在my_watch调用之前。所以计算的结果被传递给my_watch,这意味着宽度是在前面设置的,然后在监视循环期间不会改变。

我希望重新计算列数的每个周期,my_watch以便它适应窗口大小调整。

但我不知道如何转义该tput cols部分,以便它等到my_watch循环内部执行。

感谢任何帮助。

标签: bashpowershellescapingwindows-subsystem-for-linux

解决方案


推荐阅读