curl 命令在 CLI 上按预期工作,但在 shell 脚本中却不行

curl 命令在 CLI 上按预期工作,但在 shell 脚本中却不行

我有一系列 curl 命令,用于通过脚本预热 varnish。单个命令在命令行上运行良好,但当我将这些命令放入脚本中时,它们不起作用。

#!/bin/bash
curl -o /dev/null --insecure -X PURGE -H 'X-Magento-Tags-Pattern: ((^|,)cat_p_123456(,|$))' https://www.example1.com/page1.html --resolve www.example1.com:443:127.0.0.1
curl -o /dev/null --insecure -I -X GET 'https://www.example1.com/page1.html'

在命令行上,我可以单独运行这些命令,它们会按预期工作。第一个命令清除缓存,第二个命令预热缓存。当我在命令行上运行这些命令后访问页面时,我会获得预期的缓存命中。

如果我将这些放在 shell 脚本中,使其可执行,然后使用 ./script.sh 甚至 /bin/bash script.sh 运行,则清除可以成功,但获取则不行。我遇到了缓存未命中的情况。

答案1

尝试这个变体:

#!/bin/bash
curl -o /dev/null --insecure -X PURGE -H 'X-Magento-Tags-Pattern: ((^|,)cat_p_123456(,|$))' https://www.example1.com/page1.html --resolve www.example1.com:443:127.0.0.1 && curl -o /dev/null --insecure -I -X GET 'https://www.example1.com/page1.html'

相关内容