这取决于您使用的语法。查看Docker和NPM文档,不同的工具似乎能够解析的范围不同。
我使用一个简单的 grep 来验证我是否有一个<key>=<value>模式,其中键和值不为空。您可以调整模式以匹配您的上下文,例如确保大写键。
#!/bin/bash
for envfile in $(find . -maxdepth 1 -type f -name '.env.*'); do
for line in $(cat ${envfile}); do
# exclude comments
if [[ "${line:0:1}" == "#" ]]; then
continue
fi
match_line=$(echo ${line} | grep -E "^[A-Za-z0-9_].+=.+$")
if [[ ${match_line} == "" ]]; then
echo "Error in file: ${envfile}: line: ${line}"
fi
done
done
Run Code Online (Sandbox Code Playgroud)
或者,查看您的语言 loadenv 库,看看是否可以捕获特定的解析异常(如果有),以缩小导致错误的特定行的范围。