使用 space 和逗号更正路径的 bash 语法
Correct bash syntax for path with space and comma
我正在使用rsync 来备份数据。现在,我无法备份包含逗号和 space 字符的文件夹。我使用带有源名称的数组:
dirs=(
/home/user/Desktop
...
/home/user/foo, bar
)
最后一个条目的正确语法是什么?
只是引用他们的话:
dirs=(
'/home/user/Desktop'
...
'/home/user/foo, bar'
)
这可以防止 word splitting 发生。由于这些是字符串文字(例如,没有变量扩展),我更喜欢使用单引号。
假设您计划循环遍历这些目录,在这种情况下,您还应该在循环中引用变量:
for dir in "${dirs[@]}"; do
rsync command using "$dir"
done
这里需要双引号,这样就不会进行分词,但变量仍然会展开。
我正在使用rsync 来备份数据。现在,我无法备份包含逗号和 space 字符的文件夹。我使用带有源名称的数组:
dirs=(
/home/user/Desktop
...
/home/user/foo, bar
)
最后一个条目的正确语法是什么?
只是引用他们的话:
dirs=(
'/home/user/Desktop'
...
'/home/user/foo, bar'
)
这可以防止 word splitting 发生。由于这些是字符串文字(例如,没有变量扩展),我更喜欢使用单引号。
假设您计划循环遍历这些目录,在这种情况下,您还应该在循环中引用变量:
for dir in "${dirs[@]}"; do
rsync command using "$dir"
done
这里需要双引号,这样就不会进行分词,但变量仍然会展开。