클릭하여 실행할 때 Bash 스크립트가 파일을 생성하지 않습니다.

클릭하여 실행할 때 Bash 스크립트가 파일을 생성하지 않습니다.

파일을 생성하는 프로그램을 실행하는 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를 사용할 때 파일이 예상되는 곳에 기록되지 않는 가장 일반적인 이유일 것입니다.

관련 정보