sta*_*low 4 bash nautilus array nemo
我在路径中选择了 Nemo 中的 4 个文件/home/myUsername/.local/share/nemo/scripts/Folder with spaces/。Nemo 将文件路径存储在环境变量中NEMO_SCRIPT_SELECTED_FILE_PATHS。
(正如您在glenn jackman下面的答案中所见,NEMO_SCRIPT_SELECTED_FILE_PATHS包含一个以换行符分隔的文件路径列表。)
为什么是“是啊!” 不是在每个文件路径行之后打印?我怎样才能做到这一点?(这个问题可能很烦人,因为我最初认为这个文件路径列表是一个数组,但显然不是。)
脚本
#!/bin/bash
for i in "${NEMO_SCRIPT_SELECTED_FILE_PATHS[@]}"
do
echo "$i"
echo "Yeah!"
done
Run Code Online (Sandbox Code Playgroud)
输出
/home/myUsername/.local/share/nemo/scripts/Folder with spaces/script1
/home/myUsername/.local/share/nemo/scripts/Folder with spaces/script2
/home/myUsername/.local/share/nemo/scripts/Folder with spaces/script3
/home/myUsername/.local/share/nemo/scripts/Folder with spaces/script4
Yeah!
Run Code Online (Sandbox Code Playgroud)
假设:
$NEMO_SCRIPT_SELECTED_FILE_PATHSnemo 以某种方式神奇地为您设置了环境变量,并且您可以将其解析为一个 bash 数组,如下所示:
$ NEMO_SCRIPT_SELECTED_FILE_PATHS="file one
file two
file three"
$ mapfile -t files <<<"$NEMO_SCRIPT_SELECTED_FILE_PATHS"
$ echo ${#files[@]}
3
$ printf ">>%s\n" "${files[@]}"
>>file one
>>file two
>>file three
Run Code Online (Sandbox Code Playgroud)
mapfile 是一个 bash 内置命令,它读取标准输入、在换行符上拆分并将行存储在命名数组中。
如果您的任何文件名包含换行符(这是合法的文件名字符),则会中断。
| 归档时间: |
|
| 查看次数: |
711 次 |
| 最近记录: |