Intereting Posts
Миграция Virsh не удалась с ошибкой «выход из процесса при подключении к монитору» Исключение цвета фона при конвейере в лимонной панели (Arch) Измените конец нескольких похожих имен файлов FreeBSD: Как запустить скрипт python в качестве демона? Как поместить конкретное устройство клавиатуры в режим ascii? Заменить строку другой строкой в ​​редакторе vi Как спящий режим на машине RHEL6? В чем разница между gzip и compress? Не удается запустить X на новой установке Невозможно выполнить печать из fluxbox, если я не впервые вхожу в систему с другим WM Поддомен возвращается запрещен, 403 ошибки – связано с .htaccess Oh-My-Zsh удаляет дублированный путь в стеке каталогов Grep не может найти конец строки в текстовом файле формата DOS? Имеет ли ssh возможность запрашивать подпись сервера без входа в систему первым? Выключить и перезапустить контрольный код?

Bash не будет выполнять системную команду в скрипте Perl

Нужен файл Bash для запуска скрипта perl.


Это файл Perl.

#!/usr/bin/perl -w use strict; system "fastacmd -s $Q -d $NewQuery -o ./gifiles/$Q.$NewQuery.txt"; 

Я оставил много, чтобы избежать осложнений при понимании этого сценария. Перед использованием команды bash скрипт работал с определенными переменными.


Вот сценарий Bash

 #!/bin/bash #$ -o $HOME/xREPLaunch_$JOB_ID.out #$ -e $HOME/xREPLaunch_$JOB_ID.err cd $HOME/Labwork/Dbfiles/results #$ -cwd perl xREPredoTop.pl 

По какой-то причине я продолжаю получать эту ошибку

 Can't exec "fastacmd": No such file or directory at xREPredoTop.pl line 78, <IN> line 1. 

Действительно смущен, почему это не работает.

Две возможности, о которых я могу думать:

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

 system "/path/to/fastacmd ... 

в perl-скрипте, чтобы он не зависел от пути, или вы можете установить

 $ENV{PATH}= "/my/custom/paths:$ENV{PATH}"; 

внутри скрипта perl, или вы можете исправить путь в сценарии bash, загрузив свои скрипты профиля:

 source /etc/profile; source ~/.profile; source ~/.bash_profile; 

Но другая возможность заключается в том, что #!/usr/bin/perl объявленный в вашем скрипте, не является тем же самым perl, что и в вашем PATH. Вы можете проверить это, сказав:

 which perl 

Например, если вы говорите ./xREPredoTop.pl он становится

 /usr/bin/perl -w ./xREPredoTop.pl 

но если вы скажете perl ./xREPredoTop.pl это может стать

 /usr/local/bin/perl ./xREPredoTop.pl 

и что можно каким-то образом настроить другой способ изменения пути.