小编Mih*_*şog的帖子

'echo' 吃掉部分消息

我想编写一个脚本,该脚本将通过 android 调试桥转储我的 android 设备的所有分区,由于这是一个时间密集型过程,我想通过在某些关键事件发生后回显消息来通知用户进度。令我惊讶的是,我注意到有时echo不会打印它应该打印的所有字符。

重现错误的最小样本是:

#!/bin/bash

targets=$(adb shell "ls /dev/block/nand*")

for item in $targets; do
    echo "Processing $item"
    echo "dd if=$item bs=4M"
done
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出:

Processing /dev/block/nanda
dd if=/dev/block/nanda bs=4M
Processing /dev/block/nandd
dd if=/dev/block/nandd bs=4M
Processing /dev/block/nandg
dd if=/dev/block/nandg bs=4M
Processing /dev/block/nandj
 bs=4M/dev/block/nandj
Processing /dev/block/nandb
dd if=/dev/block/nandb bs=4M
Processing /dev/block/nande
dd if=/dev/block/nande bs=4M
Processing /dev/block/nandh
 bs=4M/dev/block/nandh
Processing /dev/block/nandc
dd if=/dev/block/nandc bs=4M
Processing /dev/block/nandf
dd if=/dev/block/nandf bs=4M
Processing /dev/block/nandi
 bs=4M/dev/block/nandi
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?

bash echo

3
推荐指数
1
解决办法
156
查看次数

标签 统计

bash ×1

echo ×1