Bash 脚本中的 CURL 使用 . (点空格),而不是 ./ (点斜杠)

Bash 脚本中的 CURL 使用 . (点空格),而不是 ./ (点斜杠)

我有一个 bash 脚本,它通过 CURL 向 Slack 发送几个通知并生成一个预期脚本。

当我通过运行脚本时,. scriptName.sh它运行正常,但是当我通过键入./scriptName.shCURL 部分运行它时,失败并显示错误消息:

protocol $https not supported or disabled in libcurl

这是基本文件:

curl --data "building Dev" $"https://domain.slack.com/services/hooks/slackbot?token=yourTokenHere&channel=%23yourChannelHere"

expect script.exp

curl --data "Dev built" $"https://domain.slack.com/services/hooks/slackbot?token=yourTokenHere&channel=%23yourChannelHere"

答案1

因此,当您“获取”脚本(通过使用“。command”)时,该脚本可以正常工作,但当您执行它(使用“。/command”)时,脚本则不能正常工作。

首先要检查的是权限。确保它具有可执行权限。

我发现的另一件事经常可以解决这种情况,就是将该文件标记为脚本,方法是将以下内容插入文件的最上面一行:

/bin/sh #!/bin/sh 复制代码

当然,如果您使用任何特定于 shell 的功能,则应该指定要使用哪个备用 shell。

相关内容