이 환경 파일이 있습니다
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
필요하기 때문에 환경 파일의 소싱이 예상대로 작동하지 않습니다 .export
env
환경 파일을 다음과 같이 변경하십시오.
./1.env
export BARF_BAG=1
./2.env
export BARF_BAG=2
이제 env
올바르게 채워져야 하며 비교 결과가 예상한 것보다 더 많이 출력되어야 합니다.