【发布时间】:2020-02-03 19:48:47
【问题描述】:
我有这个输出:
$ ./adb devices
List of devices attached
R9WM80DNNPJ device
(最终这将返回多行设备,例如:
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 有关?或两者兼而有之!
【问题讨论】:
-
你是在写shell脚本还是批处理文件?
-
我有这个脚本的 linux 版本。所以想写一些尽可能接近的东西。所以理想情况下是在 Windows 上的 cygwin 中运行的 bash 脚本。 (如果我把这一切搞混了,请告诉我:-))
-
考虑使用文本编辑器而不是记事本,默认情况下将编写 UNIX 行结尾或可以配置为。或者至少在保存后对文件运行
dos2unix。