【发布时间】:2015-05-12 17:30:37
【问题描述】:
我没有太多运气找到我的问题的答案。我想在 Ubuntu 中使用 mountpoint 命令找到下一个逻辑空挂载点。这将允许我编写的脚本多次出现以自动执行某些任务。
#!/bin/bash
MNT="ewf"
COUNT=""
until mountpoint -q /mnt/"$MNT""$COUNT"
do
COUNT=$((COUNT+1))
echo "$MNT""$COUNT is a mountpoint"
done
echo "$MNT""$COUNT is not a mountpoint"
循环将在哪里迭代,直到找到一个空的挂载点,例如 /mnt/ewf1。我尝试了各种可能的解决方案,这是我认为最接近的解决方案。但我不确定如何在 Bash 中不使用布尔值的情况下将语句作为真或假传递。
我在上面发现的问题是变量 $COUNT 被声明为“”(空格),因此它在 +1 之前向 /ewf 添加了一个字符。
我不确定如何纠正它。
【问题讨论】:
-
第一个循环应该检查
/mnt/ewf,第二个应该检查/mnt/ewf1不涉及空格。你确定这正在发生吗?如果将set -x添加到脚本顶部,您会看到什么? -
@EtanReisner 这似乎是有罪的,但我无法以真实值退出循环, mountpoint -q /mnt/ewf### 应该返回 false 并正常退出,这似乎失败了.
mountpoint -q /mnt/ewf3556 + COUNT=3557 + echo 'ewf3557 is a mountpoint' ewf3557 is a mountpoint + mountpoint -q /mnt/ewf3557 -
那里看不到任何空格。我确实看到了 lot 的挂载点。我还看到你在打印之前增加了
COUNT,这很令人困惑。
标签: bash mount-point