如何让 bash 脚本等到 U 盘安装完毕?

如何让 bash 脚本等到 U 盘安装完毕?

我有一个 bash 脚本,其中包含一行,cd /run/media/Username/121C-E137/一旦 CPU 识别出笔式驱动器,就会触发此脚本,但只有在安装过程完成后才应执行该行。截至目前,该行在安装笔驱动器之前执行,并返回目录无效的错误。

答案1

一个简单的解决方案是让脚本定期检查目录,并且只有在目录存在后才继续:

PENDRIVE='/run/media/Username/121C-E137'
while [ ! -d "$PENDRIVE" ]; do
    sleep 10
done

cd $PENDRIVE
...

答案2

下面将通过检查 pendrive 目录是否出现在中来检查它是否已安装/proc/mounts

pendrive='/run/media/Username/121C-E137'
while ! grep -q -s "$pendrive" /proc/mounts; do
        sleep 10
done
cd "$pendrive"

如果您需要考虑不常见的可能性,比如~/run/media/Username/121C-E137这不是您想要的,那么您可以将其修改为:

pendrive='/run/media/Username/121C-E137'
while ! grep -s "$pendrive" /proc/mounts | awk '{print $2}' | grep -q -s -x "$pendrive"; do
        sleep 10
done
cd "$pendrive"

相关内容