A opção de menu "Scripts" do Nautilus remove o sinal de porcentagem do nome do arquivo

0

A execução do seguinte script a partir da opção de menu do botão direito do mouse "Scripts" do Nautilus com um nome de arquivo que contém um sinal de porcentagem remove o sinal de porcentagem e o próximo caractere do nome do arquivo. Por exemplo, se o arquivo for chamado uvw10% xyz , o script imprimirá uvw10yz no arquivo abc.txt.

#!/bin/bash
echo "$1" >> abc.txt

Qualquer caractere, até mesmo um espaço, pode seguir o sinal de porcentagem e o problema permanece. E percebo que funciona do terminal; essa não é a questão. O ponto é que ele não funciona quando executado como um script do Nautilus.

O que está acontecendo aqui? Como posso consertar isso?

Aparentemente, os nomes de arquivos corretos podem ser impressos assim:

while read line; do
    [ "$line" ] && echo "$line"
done <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" > abc.txt

Mas ainda gostaria de saber o que está acontecendo com o sinal precent no código original.

    
por CrazyApe84 08.09.2017 / 06:19

1 resposta

0

Acho que o uvw10% xyz tem % x nele. Então, é considerado como especificador eu acho, embora funcione bem do terminal. Experimente o código abaixo

#!/bin/bash
echo $1 >> abc.txt

Você também pode tentar isso:

filepath=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS then name=${filepath##*/} then name=${name% then } then printf %s "$name"> abc.txt
    
por abhinandanbr 08.09.2017 / 07:19