Я не могу запустить "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, чтобы включить это местоположение.