【发布时间】:2021-08-16 01:35:37
【问题描述】:
我是该主题的完全初学者,我通常会寻找解决方案,而不是仅仅提出问题,因为我确信有人遇到过类似的问题。但这一次我找不到解决问题的方法。
所以我写了一个小 shell 脚本,它使用 rclone 将文件从变量文件夹复制到我的 Google Drive。
我的问题是如果包含多个单词,我无法输入文件夹名称。我已经尝试使用 read -r folder 但它返回
Command copy needs 2 arguments maximum: you provided 3 non flag arguments: ["One" "Folder/" "Drive:SomeFolder/File"]
如果我使用\,它会返回
Command copy needs 2 arguments maximum: you provided 3 non flag arguments: ["One\\" "Folder/" "Drive:SomeFolder/File"]
我希望最终命令看起来像这样
rclone copy One\Folder/ Drive:SomeFolder/File
#!bin/sh
#upload
echo "Folder Name:"
read -r folder
echo "File Name:"
read -r name
rclone copy ${folder}/ Drive:SomeFolder/${name}
【问题讨论】:
-
help read(在较新的bashes 中),将向您显示-rforraw; “不允许反斜杠转义任何字符”。我不确定这就是您要查找的内容,因此请查看列出的其他选项。祝你好运。 -
问题在于您调用
rclone的方式,而不是您读取变量的方式。您需要引用变量扩展。 ShellCheck 自动检测此问题和其他常见问题。 -
@thatotherguy 非常感谢!我将把这个网站打印在一张纸上,贴在墙上。
-
顺便说一句,我如何将此问题设置为已回答?
-
大多数编辑器也有此工具的插件,以便您在编写脚本时获得相同的建议。