我在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环境中重新定义文件解决了这个问题。