【发布时间】:2019-07-20 08:41:22
【问题描述】:
在 BASH 脚本中我需要 curl 的 4 件事:
- 我需要将 简短 人类可读的错误消息从 curl 捕获到 bash 变量中。
- 我需要能够检查命令是否完成 成功与否。
- 我需要运行命令
- 除非我回显它,否则我不希望将任何内容打印到控制台。
m=$(curl -u "$user":AP"$pass" -T "$pathA" "$url") if [ $? -ne 0 ] ; then echo "Error: ""$m" fi
问题是 curl 将乱码放入 $m 中。它只是将错误转储到控制台而不是 m。除非我回显它,否则我不希望将任何内容打印到控制台。而且我只想捕获错误描述。我尝试了很多变体,似乎没有任何东西适用于这个用例......至少在 Stack 上没有任何建议。
【问题讨论】:
-
您正在使用 命令替换 来捕获来自
curl中的所有m输出,除非您没有捕获stderr。在curl命令的末尾添加2>&1,例如..."$url" 2>&1)还有echo "Error: $m"就足够了。 -
没错——你应该把它作为一个答案,这样它才能被标记为正确。