perl 스크립트에서 외부 명령어 실행값 결과 문자열 자르기

getto의 이미지

특정 snmp값을 가져오는데 그 값이 문자열이라 문자열을 잘라서 써야 합니다.

my $result = system("snmpget -v2c -c kkk 192.168.5.5 ifAlias.$num");
my $result2 = substr($result, 0, 10);

명령어 실행 후 결과값은 아래유형 이구요
IF-MIB::ifAlias.1 = STRING: FW_eth1

문자열에서 FW_eth1만 남기려고 substr을 써봤는데 안먹히고 있습니다.

print해보면 그냥 문자열만 출력되고 잘려나오질 않습니다. 무엇이 잘못됐는지 잘 모르겠습니다.

조언 부탁드립니다.

raymundo의 이미지

system()함수는 실행한 외부 명령어의 종료 상태값을 반환하지 출력을 반환하지 않습니다.
qx 나 `` 를 쓰세요.

그리고 $result 의 내용 중 마지막 부분을 남기려면 offset 이 0이면 안 될 거고요.

my $result = qx|snmpget -v2c -c kkk 192.168.5.5 ifAlias.$num|;
my $result2 = substr($result, -7);    # 마지막 7글자

좋은 하루 되세요!

getto의 이미지

아넵 감사합니다. system명령어가 그런 특성이 있는걸 알아봤어야 하는건데

알려주신 대로 하니 잘 되는군요

감사합니다. 즐거운 하루 되세요