在 Windows Cygwin 中使用 XARGS 执行多个命令

Executing multiple commands with XARGS in Windows Cygwin

我有这个输出:

$ ./adb devices

List of devices attached
R9WM80DNNPJ     device

(最终这将 return 多行设备,例如:

List of devices attached
R9WM80DNNPJ     device
R9WM80DNNPA     device
R9WM80DNNPB     device
R9WM80DNNPC     device

)

我正在尝试获取设备名称以将其传递给多个其他命令。试图最终得到一个看起来像这样的脚本(它比 echo ofc 做的更多):

adb devices |  more +1 | cut -sf 1 | xargs -I % sh -c '{ ^
echo % ; ^
echo "Test %"; ^
}'

当我将命令全部放在一行时,cygwin 终端没有问题回显它:

当我将该命令移动到文件中时,它不再正常工作(第一行输出是所用命令的打印,但随后它不执行第一个回显):

而且运行多行命令也不行:

我的猜测是我对换行符做错了什么?还是与 sh -c 有关?或两者兼而有之!

移至默认参数​​列表标记 {} 已解决此问题!

adb devices |  more +1 | cut -sf 1 | xargs -I {} sh -c {' ^
    echo {}; ^
    echo "Test {}"; ^
'}