내 프로그램이 ~에 저장되도록 어떻게 알 수 있습니까?

내 프로그램이 ~에 저장되도록 어떻게 알 수 있습니까?

일부 데이터를 처리한 다음 파일에 저장하는 프로그램을 사용하고 있습니다. 데이터를 저장할 디렉터리를 지정하는 것은 가능하지만 프로그램이 잘 작성되어 있지 않아서 입력하면 ~결과를 해석할 수 없고 지정한 디렉터리를 찾을 수 없다고 나옵니다 /~.

나는 이 프로그램을 동료들에게 주고 그들이 실행하게 하고 싶습니다. 에 저장을 직접 지정할 수 있지만 /home/my_username/실행하려고 하면 홈 폴더의 이름이 다르기 때문에 "디렉토리를 찾을 수 없습니다"라는 메시지도 표시됩니다.

~동료가 프로그램을 실행하고 데이터를 각자의 홈 디렉터리에 저장할 수 있도록 지정할 수 있습니까 ?

답변1

~값은 셸에 의해 확장되므로 ${HOME}프로그램에 입력으로 제공할 수 없으며 자동으로 변환될 것으로 기대할 수 없습니다 ${HOME}. (프로그램에 명령줄 옵션으로 지정하여 셸에서 수행할 수 있는 기회를 제공하지 않는 한) 대체).

홈 디렉토리에 쓰려면 프로그램에서 ${HOME}환경 변수를 찾도록 할 수 있습니다. 그러면 당신이 누구이든, 집이 어디에 있든 정답을 얻게 될 것입니다.

답변2

나는 그것을 시도해 볼 것을 권하고 싶습니다 .(예, 단지 요점입니다). 이것은 의미한다현재 디렉터리.

따라서 프로그램이 사용자의 홈 디렉터리에서 실행되면 해당 데이터가 저장됩니다.

답변3

나는 /tmp.it의 world-writable을 사용하는 것을 추천합니다(또는 적어도, world-writable이 아니라면 어떤 디렉토리를 사용하는가보다 훨씬 더 큰 문제가 있습니다!).

답변4

${HOME}이 Andy가 제안한 대로 작동하지 않으면 /proc/self/cwd/를 시도해 볼 수 있습니다.

또는 이 경로를 어떻게 구성하든 배포하는 각 사용자에 대해 다른 경로를 구성하면 됩니다.

또는 프로그램을 직접 실행하는 대신 스크립트에서 실행하세요. 스크립트는 경로를 설정할 수 있지만 지금 그렇게 하고 있거나 데이터 디렉터리로 이동한 다음 경로로 프로그램을 실행하고 "."을 데이터 디렉터리로 구성할 수 있습니다.

관련 정보