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. 

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

One Solution collect form web for “Bash не будет выполнять системную команду в скрипте Perl”

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

Обычным является то, что вы запускаете скрипт 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 

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

  • Выполнение команды perl из оболочки и выполнение одной и той же команды из Perl-скрипта с использованием системной команды
  • Скрипт для автоматического входа ssh в определенный порт
  • Эквивалент «ssh-keyscan -H» в Solaris 10/11
  • Как я могу установить все отсутствующие библиотеки perl?
  • Что значит . совпадение?
  • Perl печатает строки, соответствующие столбцам файла 1 и file2
  • Сопоставьте строки файла с заголовками в другом, чтобы получить полный параграф
  • запустить скрипт perl с неизвестным местоположением perl
  • Диспетчер пакетов nix: предупреждение perl: ошибка настройки локали
  • Не удается найти местоположение libncurses.so при запуске файла
  • Превращение процентов в десятичные числа?
  • Linux и Unix - лучшая ОС в мире.