이는 모든 애플리케이션 개발자가 직면하는 간단한 질문인 것 같지만 답을 찾을 수 없습니다.
최신에 따르면사양에 따른 XDG, 환경 변수에 정의해야 할 디렉터리가 많이 있습니다. 예로서:
사용자별 구성 파일이 기록되는 기본 디렉터리가 있습니다. 이 디렉토리는 환경 변수 $XDG_CONFIG_HOME에 의해 정의됩니다.
내 Bash 스크립트가 사용자 구성을 저장한다고 가정해 보겠습니다. XDG 사양을 따르고 싶습니다. 이를 어떻게 찾을 수 있습니까 $XDG_CONFIG_HOME
? 당신이 다음과 같은 일을 할 것이라는 것이 합리적입니다.
#!/bin/bash
# Print out $XDG_CONFIG_HOME
echo Your XDG_CONFIG_HOME is: [$XDG_CONFIG_HOME]
그러나 새로 설치된 Ubuntu와 Fedora Silverblue에서 실행하면 다음과 같은 결과가 나타납니다.
$ ./test.sh
Your XDG_CONFIG_HOME is: []
이는 Ubuntu 및 Fedora Silverblue 데스크탑을 새로 설치할 때 내 응용 프로그램이 구성 파일을 실행 디렉터리에 기록한다는 의미이므로 완전히 쓸모없어 보입니다. 그러나 데이터를 올바르게 입력하는 응용 프로그램이 많이 있습니다 ~/.config/
. 이러한 응용 프로그램은 XDG 환경 변수를 어디서 찾을 수 있으며 어떻게 찾을 수 있습니까?
답변1
설정되지 않거나 비어 있는 경우
$XDG_DATA_HOME
/.local/share와 동일한 기본값을 사용해야 합니다.$HOME
모든 XDG 변수에 대해서도 마찬가지입니다.
따라서 데스크탑 환경은 일반적으로 실행시에만 값을 설정합니다.아니요기본값과 일치합니다. 스크립트에서는 ${XDG_CONFIG_HOME:-$HOME/.config}
각 변수에 적절한 기본값 등의 확장을 사용합니다 .