Пункт меню “Scripts” наутилуса удаляет знак процента из имени файла

Выполнение следующего сценария от опции контекстного меню "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

Но я все еще хотел бы знать то, что происходит с предварительным центом, входят в систему исходный код.

0
задан 8 September 2017 в 08:09

1 ответ

Я думаю , 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
0
ответ дан 2 November 2019 в 07:30

Другие вопросы по тегам:

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