Re: https://stackoverflow.com/questions/23937389/determine-parent-shell-from-perl/25139489 - PullRequest
0 голосов
/ 31 января 2019

Кто-нибудь пробовал этот код на cygwin?

Я получаю следующие ошибки:

Can't find string terminator "'" anywhere before EOF at -e line 1.
Use of uninitialized value in pattern match (m//) at ./dos_it.pl line 506.
Use of uninitialized value $shellpath in rindex at ./dos_it.pl line 586.
Use of uninitialized value $shellpath in substr at ./dos_it.pl line 586.
Use of uninitialized value $pathToShell in concatenation (.) or string at ./dos_it.pl line 761.
Use of uninitialized value $shell_conformance in concatenation (.) or string at ./dos_it.pl line 761.

Сгенерированная строка:

$ ps -ef | perl -ane '1..1 and /^(.*)CO?MM?A?N?D/ and $s=length $1;s/^.{$s}//; print "@F[1,2] $_"'

Версия Perl:

$ perl -v    
This is perl 5, version 26, subversion 2 (v5.26.2) built for MSWin32-x64-multi-thread

1 Ответ

0 голосов
/ 31 января 2019

Это команда для оболочки Bourne (sh) или аналогичная, но вы передали ее оболочке Windows (cmd) для выполнения.Выполните команду, используя sh или аналогичный (будь то Cygwin-сборка или иным образом), чтобы избавиться от ошибки.

Кстати, вы использовали сборку Perl для Windows (MSWin32-x64 arch), а несборка Cygwin из Perl (cygwin arch).Это не является причиной ошибки, так как программа будет работать в любом случае.Тем не менее, эта «проблема», безусловно, исчезнет, ​​если вы используете для сборки команды sh, построенный на Cygwin или аналогичный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...