Выполнение сценария оболочки

У меня есть скрипт:

echo "start"
cd ~/GoogleDrive/
drive push path-to-file/
echo "done"

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

start
/home/user/UploadToDrive.sh: 3: /home/user/UploadToDrive.sh: drive: not found
done 

Я разместил его здесь, потому что кажется, что Gnome делать что-то неправильно, а не что-то не так со скриптом, так как он работает, когда я использую sh или ./ явно. Я использую Ubuntu 15.10 с Gnome 3, если это уместно.

-1
задан 29 April 2016 в 17:26

1 ответ

Начиная с того .sh расширение является только подсказкой для пользователей (да, Linux не танцует в строке выполнения расширения yada yada как окна), Ваш сценарий испытывает недостаток в столь же первой строке хижины, таким образом, Вы пишете сценарий, должен быть похожим на это:

#!/bin/bash
echo "start"

#you might want to use explicit paths here this is why your script fails
cd /home/username/GoogleDrive/

#you might want to use explicit paths here this is why your script fails
drive push path-to-file/

echo "done"

После того изменения удостоверяются, что Ваш файл имеет верные полномочия:

chmod 755 UploadToDrive.sh

И наконец включают выполнение в GUI путем движения в свойства сценариев:

file-properties

2
ответ дан 30 April 2016 в 03:26
  • 1
    Спасибо, как я сказал, можно всегда заканчивать - все clp-уведомляют процессы из второго сценария (который запустился бы на запуске), и просто повторно вызовите первый сценарий, и это решило бы проблему (уже протестировал его). Я оставил старую версию сценария здесь только для других людей, чтобы видеть, как у меня был он первоначально. – marko 2 October 2017 в 08:55

Другие вопросы по тегам:

Похожие вопросы: