想在wsl中调用wsl.exe来执行在更新其他wsl distribution的命令,但是从wsl.exe返回的结果形式好像不太对劲?
我目前的脚本雏形:
#!/usr/bin/env bash
for dist in $(wsl.exe --list --quiet)
do
echo "Testing for ${dist}"
wsl.exe --distribution ${dist} -- pwd
done
执行结果:
./zzz.sh: line 3: warning: command substitution: ignored null byte in input
Testing for Arch
不存在具有提供的名称的分布。
Testing for Ubuntu-20.04
不存在具有提供的名称的分布。
Testing for Debian
不存在具有提供的名称的分布。
我的怀疑对象是wsl.exe的返回值,使用wsl.exe --list --quiet | cat -e
,会得到
A^@r^@c^@h^@^M^@$
^@U^@b^@u^@n^@t^@u^@-^@2^@0^@.^@0^@4^@^M^@$
^@D^@e^@b^@i^@a^@n^@^M^@$
^@%
应该是这些^@ ^M $ %
导致的问题,但接下来该怎么解决呢?