我正在运行 Windows 10 / WSL2 / Ubuntu 20.04 并尝试ifconfig eth0 | grep 'inet ' | awk '{ print $2 }'
在 PowerShell 中执行。这是我想出的:
wsl ifconfig eth0 | wsl grep 'inet ' | wsl awk '{ print $2 }'
wsl grep
像在 Ubuntu 中一样在 PowerShell 中工作,但在 PowerShell 中grep
不像在 Ubuntuwsl awk
中那样工作awk
。
有任何想法吗?
将整个命令作为一个大 bash 命令发送到 WSL,而不是 3 个单独的 WSL 调用,例如:
特殊字符“$”(变量的前缀字符)的转义字符似乎是一个问题。
在 Windows CMD wsl 中,caret([^]) 在许多情况下都可以很好地转义特殊字符。对于你的例子,
在 Windows Powershell 中,反斜杠([\])和反引号([`])以及一些字符用于逐个转义特殊字符。
在 bash shell 中,反斜杠([\])也可以。