Nautilus“脚本”菜单选项从文件名中删除百分号

Nautilus“脚本”菜单选项从文件名中删除百分号

使用 Nautilus“脚本”右键菜单选项执行以下脚本,文件名包含百分号,则会从文件名中删除百分号和下一个字符。例如,如果文件名为uvw10%xyz,脚本将打印uvw10yz到文件 abc.txt。

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

任何字符,甚至是空格,都可以跟在百分号后面,但问题仍然存在。我意识到它在终端上是有效的;这不是问题所在。关键是它在作为 Nautilus 脚本运行时不起作用。

这是怎么回事?我该如何解决?

显然,正确的文件名可以像这样打印:

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

但我仍然想知道原始代码中的百分号发生了什么。

答案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

相关内容