我正在尝试编写一个nautilus脚本。 nautilus应该设置一个名为$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
的变量,所选文件用换行符分隔。
我试图将它们作为一个列表用鱼来循环它们。但它们只是表现为单一元素。
set -l files $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
for i in (seq (count $files))
echo (count $files) >> koko
end
,文件koko现在显示数字1。
答案 0 :(得分:5)
Fish在设置后不会对变量进行拆分(这称为“单词拆分”)。
它的作用是在换行符上拆分命令替换,所以
set files (echo $files)
会奏效。
或者,如果您希望明确表示您要将其拆分,可以使用string split
set files (string split \n -- $files)
然后会以相同的方式结束(因为目前string split
只添加换行符),但看起来更清晰一点。 (“ - ”是选项分隔符,因此$ files中的任何内容都不会被解释为选项)
后者需要鱼> = 2.3.0。