Я не могу запустить "script2.sh" из "script1.sh" (они находятся в одной папке и имеют разрешение 755)

У меня тупой вопрос, и я надеюсь, что вы можете мне помочь.. У меня есть "script1.sh" и "script2.sh", оба имеют разрешения 755 и находятся в одной папке

script1.sh:

#!/bin/bash
zenity --info --text="SCRIPT1.sh"
./script2.sh
exit 0

script2.sh:

#!/bin/bash
zenity --info --text="TEST SCRIPT2.SH "
exit 0

Создайте компакт-диск в папку, содержащую сценарии, затем (из консоли bash) напишите:

./script1.sh

Все работает нормально! .. шоу 2 сообщения зенит

----------------------------------------

Но проблема здесь...

Если я создаю ярлык 'gnome' (Все настройки> Ярлыки> Клавиатура) и получаю доход в виде команды /path/to/script1.sh.. отображается только первое сообщение zenity (script1.sh)

Это означает, что не удается запустить "script2.sh" из "script1.sh" при нажатии комбинации клавиш... почему? Как можно решить эту проблему?

Спасибо вам!

2 ответа

Решение

Это будет работать только при запуске script1.sh из того же каталога script2.sh находится в, так как ./script2.sh говорит запустить скрипт2 из текущего каталога.

Вы можете либо установить свой PATH, чтобы включить каталог, содержащий скрипты, опуская ./ или введите абсолютный путь для script2.sh,

Когда вы создали ярлык, он запускает ваш первый скрипт только потому, что вы указали /path/to/script1.sh, и поскольку второй скрипт не находится в вашем текущем рабочем каталоге, он не может найти файл. На твоем месте я бы переписал твой первый сценарий...

#!/bin/bash
zenity --info --text="SCRIPT1.sh"
/PATH/TO/SCRIPT/script2.sh
exit 0

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

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