我使用有许多频道的流媒体服务(di.fm)。每个频道都有一个来自CLI的播放列表(使用mpv)。每个播放列表中的每个URL都存储API KEY。
我想将API KEY存储在各个播放列表之外,例如,如果我更改API KEY,则不必更改每个播放列表。
我在Mac上。
1)宣布export DI_KEY=""
最好(最安全)的地方是什么?在.bashrc是我的第一个想法,除了我把它备份到github。还有其他更好的地方可以声明每次进入bash时都会创建的env var吗?
2)在播放列表文件中,如何在URL中使用$DI_KEY
?
[playlist]
NumberOfEntries=1
File1=http://prem4.di.fm:80/00sclubhits?$DI_KEY
Title1=DI.FM - 00s Club Hits
Length1=0
Version=2
直接引用它不起作用。
我相信这可能会在其他地方得到解答,但在我的所有搜索中,我找不到任何有用的答案,尤其是问题2。
关于在.bashrc
之外设置env变量,您可以创建一个单独的文件来定义敏感变量,并从.bashrc
中获取。
例如,创建一个文件~.my-private-variables
,将文件名添加到.gitignore
并将行export DI_KEY="12345"
添加到此文件中。然后在.bashrc
中添加以下块:
if [ -f ~/.my-private-variables ]; then
. ~/.my-private-variables
fi
关于播放列表文件,bash未运行该文件,因此不会展开环境变量。
你可以在bash启动时动态生成播放列表,如下所示:
#!/bin/bash
filename=playlist-1.pls
baseurl=http://prem4.di.fm:80
cat << EOF > $filename
[playlist]
NumberOfEntries=1
File1=${baseurl}/00sclubhits?${DI_KEY}
Title1=DI.FM - 00s Club Hits
Length1=0
Version=2
EOF
这将扩展变量并将其写入文件,在本例中为当前工作目录中的playlist-1.pls
。您可以添加引用播放列表目录的文件名变量的绝对路径。
要运行它,您可以创建一个名为playlist-generator
的脚本,并在.bashrc
中将其源化,如上所述。您可以在此处添加任意数量的播放列表。