我正在使用BASH脚本:
var randomImage = function() {
var fileNames = [
"image1.png",
"image2.jpg",
"image3.png",
];
var randomIndex = Math.Round(Math.random() * fileNames.length);
//Change myImage to the id of your image. (example: <img id = "myImage" src = "meme.png"></img>)
document.getElementById("myImage").src = filesNames[randomIndex];
};
randomImage();
setInterval(randomImage, 1000);
结果:
#!/usr/bin/env bash
PATH=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
YAML=$(envsubst < ${PATH}/test.yml)
echo "${YAML}"
我看到在命令替换中包含变量会导致这种错误。 如果我不使用任何东西:
./test.sh: line 5: envsubst: command not found
然后我预期脚本执行成功。
我在各处使用引号尝试了不同的语法,但没有帮助。
如何在命令替换中成功使用变量?
bash版本:
YAML=$(envsubst < ./test.yml)
更新:一个重复的问题。在这里找到答案: https://stackoverflow.com/a/5642584/5935309
答案 0 :(得分:1)
问题是您正在更改PATH
,Bash在内部使用它来定义在哪里寻找程序(以及顺序)。
您将PATH
更改为仅包含当前工作目录,而不是envsubst
所在的地方。
解决方案是使用与PATH
不同的东西,例如FILE_PATH
。