bash脚本中无法访问系统环境变量



我在Windows Subsystem for Linux上运行Ubuntu,我想要运行一个bash脚本,该脚本需要访问系统环境变量。具体来说,我用以下命令在系统上定义了一个环境变量:

export SLACK_LEGACY_API_TOKEN="Insert Token Here"

然后,我定义了一个名为slack.sh的文件,如下所示:

#!/usr/bin/env bash
echo $SLACK_LEGACY_API_TOKEN

然后我用source ./slack.sh运行这个脚本。当我运行这个命令时,它只是打印出一个空行——它没有得到环境变量的值。

我在.sh文件中尝试了不同的语法来引用环境变量,比如"$SLACK_LEGACY_API_TOKEN"${SLACK_LEGACY_API_TOKEN},但结果相同。我还使用/slack.sh. ./slack.sh运行了该脚本,但结果相同。

如何让我的脚本看到$SLACK_LEGACY_API_TOKEN

@chepner在我的问题中的评论中提到,这个问题是由在我的Windows环境中定义.sh文件引起的。这导致文件以DOS行结尾保存,从而导致脚本出现问题。完全在Linux环境中重新定义文件解决了这个问题。

最新更新