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

时间:2018-11-01 16:28:41

标签: linux bash sh windows-subsystem-for-linux

我正在Windows 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

1 个答案:

答案 0 :(得分:0)

正如@chepner在我的问题中的评论中提到的那样,此问题是由在Windows环境中定义.sh文件引起的。这导致文件被保存为DOS行尾,这导致了脚本问题。完全在Linux环境中重新定义文件即可解决该问题。