bash - curl: (26) 当文件是变量时无法打开文件

标签 bash curl

我正在尝试将文件列表上传到服务器。这是我的脚本

files=$(shopt -s nullglob dotglob; echo /media/USB/*) > /dev/null 2>&1
if (( ${#files}  ))
    then
            for file in $files
            do
                    echo "Filename"
                    echo $file
                    curl -i -X POST -F files=@$file 192.168.1.122:5000/upload
            done

基本上,我正在尝试获取 USB 驱动器上的所有文件并将它们上传到我的本地服务器。 curl 命令给我带来了麻烦。我可以将这些文件移动到我安装在该系统上的驱动器,但我无法使用 curl 命令发送它们。我已经根据其他相关问题尝试了 @"$file"@\"$file\" 的变体,但我无法让它工作。然而,令人讨厌的是,当我这样做时:

curl -i -X POST -F files=@/absolute/path/to/my/file.txt 192.168.1.122:5000/upload

它按我预期的那样工作。我怎样才能让它在我的循环中工作?

最佳答案

所以我最终想出了一个解决方案,我将分享这个解决方案,以防其他人遇到这个问题。我不确定为什么要修复它,但我只需要在 curl 命令中的 files=@$file 周围加上引号:

curl -i -X POST -F "files=@$file" 192.168.1.122:5000/upload

将它留在这里以防它对下线的人有用。

关于bash - curl: (26) 当文件是变量时无法打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40591835/

相关文章:

bash - 如何比较unix中的用户输入

PHP stream_context_set_option SSL 证书作为字符串

json - 如何发布嵌套数据和图像列表

javascript - phpcurl远程页面javascript提取

linux - 该脚本中 -e 标志的用途是什么?

linux - 从 perl 执行 if else shell 命令

ruby - 如何让 ruby​​ 的 `system` 调用知道我的 `.bash_profile` 别名?

Bash 如果字符串检查

php - 如何为 Ingram 微集成创建正确的订单测试?

php - 为什么 curl_multi_select 和 curl_multi_info_read 相互矛盾?