С помощью 'fuser' я могу видеть, какой процесс использует файл. Однако любой включенный файл не отображается с 'fuser'.
mainfile
#! /bin/bash
source subfile
SomethingInSubFile
sleep 60
exit 0
подфайл
SomethingInSubFile(){
echo "Just some text."
}
Когда я запускаю 'mainfile', из 'fuser' выводится следующий результат:
root@thisbox:/tmp# fuser mainfile
/tmp/mainfile: 25560
root@thisbox:/tmp# fuser subfile
<nothing>
Причина Вопрос: В моей ситуации у меня есть много скриптов bash со строкой «исходный подфайл». Эти сценарии используются в нескольких системах. Я создал скрипт автоматической установки, который использует 'fuser', чтобы увидеть, использует ли кто-нибудь файл. После чего сценарий ожидает, пока файл не будет выпущен, прежде чем заменить его самой новой версией. К сожалению, я не могу проверить, используется ли «подфайл».
После той исходной функции выходы ничто не использует субфайл. Сценарий работает в подоболочке, порожденной сценарием и получающий любой файл с функциональными действиями определения, как будто те функции были введены в подоболочку клавиатурой. Во время выполнения функции исходного файла это будет использоваться оболочкой sub очень кратко.
можно хотеть добавить функцию сна к полученному файлу для тестирования на себя