Выполнение следующего сценария от опции контекстного меню "Scripts" Наутилуса с именем файла, которое содержит знак процента, удаляет знак процента и следующий символ от имени файла. Например, если файл назовут uvw10%xyz, то сценарий распечатает uvw10yz в файл abc.txt.
#!/bin/bash
echo "$1" >> abc.txt
Любой символ, даже пространство, может следовать за знаком процента, и проблема остается. И я понимаю, что это работает от терминала; это не вопрос. Дело в том, что это не работает, когда выполнено сценарием Наутилуса.
Что продолжается здесь? Как я могу зафиксировать его?
По-видимому, корректные имена файлов могут быть распечатаны как это:
while read line; do
[ "$line" ] && echo "$line"
done <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" > abc.txt
Но я все еще хотел бы знать то, что происходит с предварительным центом, входят в систему исходный код.
Я думаю , uvw10%xyz имеет %x в нем. Так его продуманное как спецификатор, который я предполагаю, Хотя он хорошо работает от терминала. Попробуйте ниже кода
#!/bin/bash
echo $1 >> abc.txt
, можно также попробовать это:
filepath=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS then name=${filepath##*/} then name=${name% then } then printf %s "$name"> abc.txt