Пользовательский LiveCD без Unity по-прежнему пытается загрузить сеанс ubuntu. (Не удалось загрузить session & ldquo; ubuntu & rdquo;)

Тот факт, что вы используете df с grep, говорит мне, что вы отфильтровываете вывод df, пока какое-то устройство не подключится к определенному каталогу, то есть, находится ли он в списке.

Вместо фильтрации фокуса списка в нужном каталоге. К счастью для нас, утилита mountpoint позволяет нам делать именно это и позволяет иметь дело с статусом выхода этой команды. Рассмотрим это:

$ mountpoint  /mnt/HDD/                                                        
/mnt/HDD/ is a mountpoint
$ echo $?
0
$ mountpoint  ~                                                                
/home/xieerqi is not a mountpoint
$ echo $?
1

Таким образом, ваш сценарий можно переписать как

while ! mountput /toBeMounted > /dev/null
do
   sleep 3
done
echo "Yup, /toBeMounted got mounted!"

Пример прогона с моим собственным диском:

$ while ! mountpoint /mnt/HDD > /dev/null
> do 
>     echo "Waiting"
>     sleep 1
> done && echo "/mnt/HDD is mounted"
Waiting
Waiting
Waiting
Waiting
Waiting
/mnt/HDD is mounted

На вы можете довольно легко реализовать свою собственную версию команды mountpoint, например, в python, как и я:

#!/usr/bin/env python3
from os import path
import sys

def main():

    if not sys.argv[1]:
       print('Missing a path')
       sys.exit(1)

    full_path = path.realpath(sys.argv[1])
    with open('/proc/self/mounts') as mounts:
       print
       for line in mounts:
           if full_path in line:
              print(full_path,' is mountpoint')
              sys.exit(0)
    print(full_path,' is not a mountpoint')
    sys.exit(1)

if __name__ == '__main__':
    main()

Пример прогона:

$ python3 ./is_mountpoint.py /mnt/HDD                                          
/mnt/HDD  is mountpoint
$ python3 ./is_mountpoint.py ~                                                 
/home/xieerqi  is not a mountpoint
0
задан 24 February 2012 в 21:09

0 ответов

Другие вопросы по тегам:

Похожие вопросы: