Скрипт 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

Извините, моя репутация, по-видимому, не позволяет мне комментировать, хотя это было бы более уместно, поскольку я прошу вас сначала кое-что проверить.

В любом случае, мой вопрос: используете ли вы одно и то же имя пользователя при использовании консоли и графического интерфейса?

Возможно, при использовании консоли вы вошли в систему как пользователь root, в то время как ваш графический интерфейс был бы зарегистрирован под другим именем пользователя, у которого может не быть необходимых прав в папке, в которую вы пытаетесь записать файлы?

Затем вам следует убедиться, что вы предоставили необходимые права пользователю GUI (например, добавив учетную запись пользователя в соответствующую группу).

Это, пожалуй, самая распространенная причина, по которой файлы не записываются туда, куда вы ожидаете при использовании Linux.

Связанный контент