728x90
반응형
envsubst 명령어는 환경 변수의 값을 텍스트 파일 내의 변수로 치환하는 데 사용됩니다. 이 명령어는 주로 설정 파일이나 스크립트에서 환경 변수의 값을 동적으로 적용할 때 유용합니다. 사용 방법은 다음과 같습니다:
1. 환경 변수 내보내기: envsubst는 내보낸(exported) 환경 변수만 인식합니다. 따라서 먼저 사용할 환경 변수를 내보내야 합니다:
export VARIABLE_NAME="value"
2. 치환할 파일 준비: 치환을 원하는 파일을 준비합니다. 이 파일 내에서 $VARIABLE_NAME 또는 ${VARIABLE_NAME} 형식으로 환경 변수를 참조합니다.
3. envsubst 실행: 다음 명령어를 사용하여 파일 내의 변수를 환경 변수의 값으로 치환합니다:
envsubst < input_file > output_file
여기서 input_file은 원본 파일이고, output_file은 치환된 결과를 저장할 파일입니다.
4. 특정 변수만 치환: 특정 환경 변수만 치환하고 싶다면, envsubst에 변수 이름을 명시할 수 있습니다:
envsubst '$VARIABLE_NAME' < input_file > output_file
이 경우, $VARIABLE_NAME 환경 변수만 치환되고, 다른 환경 변수는 그대로 유지됩니다.
5. 변수 설정 해제: 치환 작업 후에는 필요에 따라 환경 변수를 설정 해제할 수 있습니다:
unset VARIABLE_NAME
envsubst 명령어는 간단하지만 매우 강력하여, 환경 변수를 사용하여 동적으로 파일 내용을 관리할 수 있게 해줍니다.
스크립트 예제
지정된 폴더의 yaml 파일을 읽어들여서, -route 라는 파일명을 붙이도록 만들고, 그 안에 변수들도 치환될 수 있도록 수행
#!/bin/bash
# 환경 변수 설정 (필요한 경우 수정)
FOLDER_PATH="/path/to/your/folder" # 폴더 경로
SUFFIX="-route" # 파일명에 추가할 텍스트
# 파일 처리
for file in "$FOLDER_PATH"/test*.yaml; do
# 파일명에서 확장자 제거
base_name=$(basename "$file" .yaml)
# 새 파일명 생성
new_file="$FOLDER_PATH/$base_name$SUFFIX.yaml"
# 파일 복사 및 수정
cp "$file" "$new_file"
# 환경 변수 치환
envsubst < "$new_file" > "${new_file}.tmp" && mv "${new_file}.tmp" "$new_file"
echo "Added $SUFFIX to $base_name.yaml and created $new_file"
done
728x90
반응형
LIST
'Linux' 카테고리의 다른 글
[Linux] SSL,TLS 인증서 만료일 체크하여 Mattermost 전송 (1) | 2024.04.30 |
---|---|
[Linux] 리눅스에서 <,> 표준 입력,출력 리디렉션 명령어 사용법 (1) | 2024.04.29 |
[Linux] nohup 과 & 차이점 및 사용법 (0) | 2024.02.02 |
[Linux] disk format, mount 방법 (ext4, ntfs, xfs) (2) | 2024.01.26 |
[Linux] ldd 명령어 다양한 옵션과 사용 예시 (1) | 2024.01.17 |