我有这个环境文件
1.env内容:
BARF_BAG=1
然后是另一个环境文件:
2.env内容:
BARF_BAG=2
我对文件运行 comm 和 diff 以查看差异:
#!/usr/bin/env bash
(
set -e;
first_env_file="$1"
second_env_file="$2"
if ! test -f "$first_env_file"; then
echo 'first arg must be an env file';
exit 1;
fi
if ! test -f "$second_env_file"; then
echo 'second arg must be an env file';
exit 1;
fi
echo -e '\n'
echo -e 'displaying results from diff tool:'
diff <(. "$first_env_file"; env | sort) <(. "$second_env_file"; env | sort) || true
echo -e '\n'
echo 'displaying results from comm tool:'
comm -3 <(. "$first_env_file"; env | sort ) <(. "$second_env_file"; env | sort) || true
echo 'finished diffing env files.'
)
我什么也没得到,只是:
displaying results from diff tool:
displaying results from comm tool:
finished diffing env files.
是什么赋予了?
答案1
您似乎没有在运行diff
任何comm
文件,您正在比较命令的输出env
。
由于您正在进行比较env
,环境文件的来源并没有按照您的预期进行,因为您需要export
变量才能显示它们env
。
按如下方式更改您的环境文件:
./1.env
export BARF_BAG=1
./2.env
export BARF_BAG=2
现在env
应该正确填充,并且您的比较应该输出更多您所期望的内容。