diff와 comm은 두 env 파일 사이에 차이점이 없음을 발견했습니다.

diff와 comm은 두 env 파일 사이에 차이점이 없음을 발견했습니다.

이 환경 파일이 있습니다

  • 1. 환경 콘텐츠:

    BARF_BAG=1

그런 다음 다른 환경 파일:

  • 2.환경 콘텐츠:

    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필요하기 때문에 환경 파일의 소싱이 예상대로 작동하지 않습니다 .exportenv

환경 파일을 다음과 같이 변경하십시오.

./1.env
export BARF_BAG=1
./2.env
export BARF_BAG=2

이제 env올바르게 채워져야 하며 비교 결과가 예상한 것보다 더 많이 출력되어야 합니다.

관련 정보