【发布时间】:2021-07-12 16:07:32
【问题描述】:
我有一个启动脚本/init,它可以启动 Linux 嵌入式系统。在那里我有一个计算 SD 卡分区的函数
get_number_of_partitions () { ls ${SDCARD_DEV}p* 2> /dev/null | wc -l; }
它适用于一些 busybox 版本,但不是所有版本。期望是计算分区,例如/dev/mmcblk0p1 /dev/mmcblk0p2。当我追踪时,我发现在不工作的情况下,p* 在ls 命令之前扩展为proc。导致计算 1 个 ${SDCARD_DEV} 实例 + 来自 proc 孩子的大约 100 个项目。
我也试过:ls ${SDCARD_DEV}"p*",结果相同。
【问题讨论】:
-
$SDCARD_DEV的值是多少? -
$SDCARD_DEV 看起来像
/dev/mmcblk0 -
停止扩展不会有帮助,因为
ls本身不会执行扩展。