В конце «NAUTILUS_SCRIPT_SELECTED_FILE_PATHS» есть дополнительный канал, который вызывает проблемы, когда я пытаюсь добавить двойные кавычки для правильного обнаружения файлов.
Я изменил приятное предложение от souravc, поэтому он отлично подходит для меня (фид строки в конце удален, добавлены двойные кавычки, поэтому нет проблем с именами файлов с пробелами).
#!/bin/bash
# Remove line feed at the end of the path
selectedPath="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%?}"
# Check if the selected file is a symbolic link
if [ -h "$selectedPath" ]; then
var="$( readlink "$selectedPath" )"
else
zenity --info --text="$( basename "$selectedPath" ) is not a symbolic link"
exit 0
fi
# Open the parent directory of the symbolic link
nautilus "$( dirname "$var" )"
Я не думаю, что в синтаксисе вашей команды есть что-то неправильное (любая команда ufw или цикл bash - хотя было бы хорошей практикой процитировать переменную $line, т.е. ... from "$line" to any ...) .
Ошибка ERROR: Bad source address указывает на проблему с самой адресной строкой, и мы можем предположить, что это может быть связано с окончанием строки в конце DOS CR-LF, которое вы смогли подтвердить, открыв chinaiprange.txt в файле nano
Решение состоит в том, чтобы исправить концы строк, используя любой из известных методов, таких как:
, запускающий ваш файл с помощью команды dos2unix используя tr или sed - например, sed -i 's/\r$//' chinaiprange.txt, открыв файл в vi и выполнив :set ff=unix, а затем :wq, чтобы повторно сохранить