我有一个 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"