LINUX.ORG.RU

Как из bash script размонтировать каталог из которого вызван скрипт?

 , ,


0

3

Представим себе следующую ситуацию:

# команды выполняются в терминале
mount /dev/sdb1 /mnt
cd /mnt
cat /usr/bin/supermegascript
#!/usr/bin/env bash
cd /tmp # пытаемся освободить /mnt
umount /mnt # получаем ашыпку target is busy

supermegascript
umount: /mnt: target is busy.

А как сделать, что бы скрипт полностью сменил каталог запуска на «нейтральный» и освободил /mnt?


Ответ на: комментарий от anonymous

. /usr/bin/supermegascript

Так оно работает, но…

Скрипт делается для совсем юзверей сиволапых и требовать от них поставить точку перед скриптом как минимум жестоко.

Обязательно будет конструкция:

.supermegascript

и вопли, что ни хрена не работает! Мы все умрем!

HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 1)

У тебя скрипта, один является потомком другого. У обоих CWD в /mnt. Ты меняешь CWD потомка, но CWD родителя все ещё в /mnt. Тебе надо выйти из /mnt в родителе перед тем, как создавать потомка.

anonymous
()