Невозможно размонтировать /mnt, смонтированный из скрипта

Единственный способ воспроизвести вашу проблему — это если файл действительно содержит точки с запятой в качестве разделителей и каждая строка заканчивается парой \r\n. Когда это происходит, использование \rв качестве RS приводит к тому, что \nоказывается на следующей строке.

Исходный файл используется:

Id,Day,UserId,ItemId
1,12/1/17 0:03,2323,tv
2,12/14/17 7:10,4546,frr
3,1/22/18 14:11,2421,fdf
4,2/16/18 13:36,4545,dfdf
5,3/5/18 10:47,1232,dfsdf

Самое простое решение — удалить \rв файле (, возможно, с помощью dos2unix ).
Проще сделать это внутри awk:

$ awk '{gsub(/\r/,"")}; NR==1 {print $0,"MonthYear"}; NR>1 {print $0,$2"/"$4}' FS="[,/ ]" OFS=, Test.csv
Id,Day,UserId,ItemId,MonthYear
1,12/1/17 0:03,2323,tv,12/17
2,12/14/17 7:10,4546,frr,12/17
3,1/22/18 14:11,2421,fdf,1/18
4,2/16/18 13:36,4545,dfdf,2/18
5,3/5/18 10:47,1232,dfsdf,3/18
0
02.01.2021, 17:14
1 ответ

/mnt занят двумя процессами :оболочкой, выполняющей ваш скрипт, и самим sudo. Вы не можете изменить их рабочие каталоги из вашей корневой оболочки.

Вы можете либо изменить свой сценарий, чтобы он не cdпопадал в вашу точку монтирования, либо использовать umount -lперед выходом из вашей корневой оболочки. Последний будет лениво размонтироваться, а когда вы выйдете из оболочки, sudoи родительская оболочка тоже выйдут, освободив точку монтирования.

Если вы хотите также закрыть том LUKS, лучше всего добавить это в свой скрипт:

sudo cryptsetup open /dev/sda3 dm_crypt && sudo mount -t btrfs /dev/mapper/dm_crypt /mnt && cd /mnt && ls -la && sudo -s
cd - && sudo umount /mnt && sudo cryptsetup close dm_crypt
3
18.03.2021, 22:39

Теги

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