Рейтинг:0

Два одинаковых bash-скрипта в одном и том же каталоге ведут себя по-разному. Что я делаю не так?

флаг ph

Я только начинаю работать с Ubuntu, пытаясь разобраться. Я немного запутался.

Краткая версия моих вопросов:

A) Создание исполняемых сценариев bash не работает надежно. Просто иногда это необъяснимо не работает, даже при использовании одних и тех же шагов для идентичных скриптов в одном каталоге.

Б) Когда я могу заставить исполняемый файл работать, иногда кажется, что два идентичных скрипта ведут себя по-разному. Один выполняет свою работу по назначению, другой выдает уведомление об ошибке «Команда не найдена», несмотря на то, что оба являются одними и теми же сценариями с разными именами в одном каталоге.

------(Подробнее)--------

Мои шаги для создания исполняемых скриптов:

  1. Щелкните файл правой кнопкой мыши и выберите «Свойства»> «Разрешения»> «Разрешить выполнение файлов как программы». (Кажется, это ничего не делает, но я все равно это делаю. Всякий раз, когда я пытаюсь выполнить скрипт после этого шага, ничего не происходит.)

  2. Запустите «chmod +x» в терминале.

У меня есть это для работы с двумя разными сценариями, но не с другими. Я понятия не имею, что я делаю неправильно. Когда исполняемый файл не работает, я могу запустить скрипт через терминал, и он отлично работает.

Вот пример скрипта, который я пытаюсь запустить:

#!/бин/баш

cd Рабочий стол/Проекты/Zemmings\ V3/NeoLemmix_V12.12.1
вино NeoLemmix.exe

Этот скрипт работает и является исполняемым. Теперь я хочу продублировать его и изменить пути и программы для разных приложений Windows.

Я копирую и вставляю файл, меняю имя, выполняю шаги, описанные выше, дважды щелкаю по нему и получаю сообщение об ошибке «Команда не найдена». Однако это до изменения сценария, поэтому он должен делать то же самое, что и оригинал. Несмотря на идентичное содержимое, он выдает ошибку, хотя оригинал все еще работает.

Итак, если у кого-то есть ответ или совет для меня, дайте мне знать.

-------(Сводка вопросов)------------

Почему проверка «Свойства»> «Разрешения»> «Разрешить выполнение файлов как программы». на файле ничего не делать?

Почему «chmod +x» иногда не работает?

Почему два одинаковых скрипта в одном каталоге ведут себя по-разному?

Спасибо!

mook765 avatar
флаг cn
Сбивает с толку, вы говорите, что исполняемость не работает, но вы, очевидно, можете выполнить свой скрипт, как это сочетается? Вы должны заменить относительный путь в команде cd в вашем скрипте на абсолютный путь.
Martin Thornton avatar
флаг cn
Исполняемость *выставлена* корректно, т.к. терминал работает нормально, значит что-то не так. Похоже, речь идет только о запуске скрипта из файлового менеджера. Какой из них, а также какой тип Ubuntu и версию вы используете? Кроме того, если единственная разница действительно заключается в именах файлов, эти точные имена могут быть подсказкой.
waltinator avatar
флаг it
Какая базовая файловая система?
Jeff Schaller avatar
флаг ru
Ваш редактор сохраняет файл с окончаниями строк в стиле Windows? (возврат каретки + новая строка, а не просто новая строка)
zanzindorf avatar
флаг ph
@ mook765 Цель состоит в том, чтобы запускать сценарии с моего рабочего стола, а не с терминала. Это экономия времени. Не работает исполняемый файл с рабочего стола. Что касается путей, то я думал, что они абсолютны. Им просто нужен / в начале путей? Я думал, что относительные пути используют расширение . и.. рюшечки.
zanzindorf avatar
флаг ph
@MartinThornton Я думаю, что это стандартная версия Ubuntu по умолчанию. В окне «О программе» написано, что это просто «Файлы». Я использую Ubuntu 20.04.2 LTS, если это поможет. У меня также есть что-то под названием «FileManager-Actions», у которого есть значок наутилуса. Я попытался продублировать сценарий, удалив оригинал и переименовав копию так, как был назван оригинал, но столкнулся с той же ошибкой.
zanzindorf avatar
флаг ph
@JeffSchaller Я не уверен. Я использую gedit, который, как мне кажется, поставляется с Ubuntu. Как бы я это проверил? Кроме того, что бы это ни было, окончание строки на 100% соответствует обеим копиям сценария, поскольку я копирую/вставляю весь файл в файловый браузер.
zanzindorf avatar
флаг ph
НОВАЯ ИНФОРМАЦИЯ: я также наткнулся на кое-что новое. Если я открою два окна файлового проводника, одно с рабочим столом, а другое с любым другим каталогом, и перетащу скрипт с рабочего стола в другой каталог, а затем перенесу его обратно на рабочий стол, глупая вещь просто начнет работать. Он становится исполняемым с рабочего стола, просто перемещая его из одного каталога в другой и обратно. Как? Я думаю, это обходной путь, но это немного раздражает. Есть ли решение для этого?
Рейтинг:0
флаг ph

Я думаю, проблема в том, что рабочий стол по умолчанию просто ужасен. Изучая отдельную проблему, кажется, что с рабочим столом по умолчанию существует множество проблем, и некоторые люди просто рекомендуют использовать для него другое расширение, что я и сделаю. Я переключился на «Значки рабочего стола NG», и теперь все работает отлично.

Я могу просто установить флажок «Разрешить выполнение файлов как программы» в разрешениях, и теперь он работает без проблем благодаря новому расширению рабочего стола. Теперь я также могу перетаскивать файлы со своего рабочего стола в приложения и файловые браузеры. Теперь все хорошо. Извините, это не исправление, это обходной путь, но я думаю, что это просто ошибка или недосмотр (на основе других обсуждений, которые я нашел), который в конечном итоге будет исправлен.Поэтому я думаю, что единственное реальное решение - подождать, пока оно не будет исправлено, или использовать этот обходной путь.

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

Чтобы установить альтернативное расширение рабочего стола, которое у меня сработало: https://ubuntuhandbook.org/index.php/2020/10/enable-drag-drop-desktop-ubuntu-20-04/

Ответить или комментировать

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