나는 명령을 실행하고 your id is <895162>
과 같은 출력을 얻는 perl 스크립트로 작업 중입니다. 이 문자열을 저장하고이 문자열에서만 숫자를 읽습니다. 문제는 내 기본 명령이 펄에서 시스템 명령을 사용하여 쉘에서 실행된다는 것입니다. 같은출력을 복사하고 perl에서 번호를 추출하십시오.
:
#ids.csh is "echo your id is <1123221>"
my $p = system ("./ids.csh 2>&1 > /dev/null");
print "$p\n";
$p =~ s/[^0-9]//g;
하지만 출력이 어디에서 잘못 가고,은 $ P 파일에 복사되지 않는 이유는 무엇입니까?
이제이 명령은 출력으로'./ids.csh 2>/dev/null'을 출력하고, 시스템을 사용해 보았을 때 에코 라인을 인쇄하고 있지만 인쇄하지 않으면 $ p와 $ p 값을 복사하지 않습니다. . – user2828488
그런 다음 역 따옴표를 사용하지 않고 작은 따옴표를 사용했습니다. backticks는 일반적으로 물결표 ~와 같은 키보드의 동일한 키에 있습니다. 또는'my $ p = qx! ./ ids.csh 2>/dev/null!;'(qx를 명시 적으로 지정하면 원하는 구분 기호를 선택할 수 있습니다)를 수행 할 수 있습니다. – ysth