diff 和 comm 未发现两个 env 文件之间的差异

diff 和 comm 未发现两个 env 文件之间的差异

我有这个环境文件

  • 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应该正确填充,并且您的比较应该输出更多您所期望的内容。

相关内容