Я исправил это самостоятельно, отредактировав файл / etc / default / grub
GRUB_CMDLINE_LINUX=" rootdelay=3 "
GRUB_DISABLE_LINUX_UUID=true
С только первым, этого было недостаточно. Я даже попробовал 130, как было сказано ранее. Затем я отключил UUID со второй командой. Это был корневой раздел LVM в любом случае, поэтому данные UUID были бессмысленными.
Вам не нужно возиться с IFS:
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read filename; do
unzip "$filename" -d temp
done
У меня была аналогичная проблема, и оказалось, что эхо сохраняет символы новой строки в двойных кавычках, но без кавычек они меняют их на пробелы.
Используя $@ вместо $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS в сценариях Nautilus, можно решить проблему с новыми разделителями строк (которые используются как разделители в $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS и $NAUTILUS_SCRIPT_SELECTED_URIS).
Итак, код будет выглядеть так:
#!/bin/bash
for line in "$@"; do
if [[ "$line" = "" || "$line" = " " ]]; then
exit
else
unzip "$line" -d "temp"
fi
done
Кроме того, это удобно, когда нам нужно просто перейти к другому приложению:
#!/bin/sh
baobab "$@"
Поместите одинарные кавычки вокруг имени переменной, например:
#!/bin/bash
for line in '$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'; do
if [[ "$line" = "" || "$line" = " " ]]; then
exit
else
unzip "$line" -d "temp"
fi
done