Perl open에서 | 의 역할 질문 드립니다.
안녕하세요
perl code에서 crontab의 Data를 수정하기 위해서 아래와 같은 code를 검색하여 찾았습니다.
open my $fh, "| crontab -";
my $cron = `crontab -l`;
$cron =~ s/.*Contents.*\n//g;
print $fh $cron;
close $fh;
crontab -l command로 현재 crontab에 작성된 내용을 $cron에 저장하고, "Contents" 문자열이 포함된 line을 s//g line을 통해 제거 하는 것 까지는 이해가 되는데, 제일 첫줄의 "| crontab -" 와 print $fh를 했을 때 어떤 원리로 Crontab이 $cron의 내용으로 새로 작성 되는 것인가요?
Terminal에서 "crontab file_path" command를 통해 crontab의 내용이 file의 내용과 동일해 지는 것은 test 해보았는데, 위 code에서 open과 print를 통해서 "crontab file_path"와 동일한 기능을 하는 원리가 궁금해서 질문드립니다.
그리고 이 질문과는 상관 없지만, 제가 KLDP 사이트를 처음 써봐서 이미 있는 글들에 대해서 검색을 하는 방법을 몰라서 함께 질문드립니다.
KLDP 페이지의 우측 상단의 검색(KLDP.net 메뉴 우측) 메뉴를 이용하면 찾아보기 - Google 메뉴에 들어가지나 아무 내용이 검색 되지 않아서요. 혹시 Forum에 있는 글들을 검색하는 방법도 아시는 분이 계시면 답변해 주시면 정말 감사하겠습니다.
우측 상단 검색 메뉴를 사용하는게 맞는데 제 컴퓨터 문제인건가요? 회사 환경에서 사용 중이여서 문제가 있을 지도 모르겠네요..
두서 없는 질문글 읽어 주셔서 감사드립니다.
쉽게 설명하기 위해서 코드를 아래와 같이 수정해 보면
쉽게 설명하기 위해서 코드를 아래와 같이 수정해 보면 (결과는 달라지지 않습니다.)
위의 2줄은 이해를 하실 것이고요. 위의 코드를 bash 로 바꾸어 보면 아래와 같습니다.
즉 "crontab -" 명령은 standard in 으로 흐르는 stream을 crontab 내용으로 기록하라는 의미 입니다.
그리고, 검색이 안되는 문제는 IE8 을 포함한 이하 버전에서는 기능이 지원되지 않아서 입니다. IE9 이상 또는 최신 브라우저를 사용해 주세요.
감사합니다.
명쾌하고 친절한 답변을 해주셔서 감사합니다.
가지고 있던 궁금증이 모두 해결 되었습니다!
댓글 달기