파일을 생성하는 프로그램을 실행하는 bash 스크립트가 있습니다(실행된 현재 디렉터리에). 그런 다음 bash 스크립트는 해당 파일과 크기를 확인합니다.
터미널에서 이 스크립트를 실행하면 모든 것이 잘 작동하고 파일이 생성되고 검색되고 보고됩니다.
문제는 이것이 기본적으로 사용자 친화적이어야 하고 실행하려면 클릭할 수 있어야 한다는 것입니다. 클릭하면 스크립트가 실행되지만 파일이 생성되지 않은 것 같습니다(어쩌면 다른 곳에 있는 것일까요?). 따라서 파일을 찾을 수 없으므로 보고서가 실패합니다.
이 스크립트에서는 프로그램을 호출하기 전에 cd ~/path/to/location을 수행합니다.
#!/usr/bin/env bash
cd ~/path/to/location
./someprogram
if [ touch output.txt ]; then
echo "FILE EXISTS"
fi
답변1
내 환경이 SHEBANG을 사용하여 완전히 복사되지 않은 것으로 나타났습니다.
#!usr/bin/env bash
스크립트에서 누락된 환경 변수를 정의하고 내보내기만 하면 스크립트가 제대로 작동했습니다.
export ENV_VARIABLE_NAME=environment_variable_data
bash 환경에서 변수가 정의되지 않았기 때문일 것입니다(아마도 cshrc 등).
답변2
죄송합니다. 제 평판 때문에 댓글을 달 수 없는 것 같습니다. 먼저 확인을 요청하는 것이 더 적절했을 것입니다.
어쨌든 내 질문은: 콘솔과 GUI를 사용할 때 동일한 사용자 이름을 사용하고 있습니까?
콘솔을 사용할 때 루트로 로그인했을 수 있지만 GUI는 파일을 쓰려는 폴더에 필요한 권한이 없을 수 있는 다른 사용자 이름을 사용하여 기록됩니다.
그런 다음 GUI 사용자에게 필요한 권한을 부여했는지 확인해야 합니다(예: 관련 그룹에 사용자 계정 추가).
이는 아마도 Linux를 사용할 때 파일이 예상되는 곳에 기록되지 않는 가장 일반적인 이유일 것입니다.