【问题标题】:BASH finding empty mountpointBASH 找到空的挂载点
【发布时间】: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


【解决方案1】:

until mountpoint ... 更改为while mountpoint ...。您想跳过 挂载点的条目。

【讨论】:

    猜你喜欢
    • 2017-04-22
    • 2020-01-05
    • 2023-01-18
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多