이 게시물을 더 이상 사용할 수 없도록 삭제하십시오.곧 삭제해야합니다
답변
해시는 환경 변수에 액세스하고 조작 할 수 있습니다. Environment in perlrun을 참조하십시오. 편의를 위해 코어 모듈 Env도 있습니다. 우리는 print $ENV{HOME}
이라고 말하거나 새로운 해시 키를 설정하여 환경 변수를 추가하거나 기존 해시 키 값을 변경 (새 값 쓰기) 할 수 있습니다. 이 환경은 프로그램에 의해 시작된 프로세스에 의해 상속됩니다.
그래서 부모
use warnings 'all';
use strict;
$ENV{VAR} = '...'; # HOME, PATH, ... or a new variable
$ENV{PERL5LIB} = '...'; # where some modules are installed
system("script.pl");
$ENV{VAR}
을 사용할 수 있습니다
use warnings 'all';
use strict;
use SomeModule qw(func); # SomeModule is installed in PERL5LIB
print "$ENV{VAR}\n";
func();
라고 직접
use
모듈
PERL5LIB
에 설치할 수있는 프로그램
script.pl
와.
이것은 프로그램이 시작하는 프로세스에만 영향을줍니다. 그것은 부모 (데몬은 어쨌든 가지지 않을 것입니다)에 대한 환경을 변경하지 않으며 프로그램과 독립적 인 것들에 영향을 미치지 않습니다.
–을 추가하고 싶습니다. 적절한 데몬을 실행하고 있는지 확인하십시오. 예를 들어 Complete Dissociation of Child from Parent in perlipc을 참조하십시오. in perlipc SIGHUP
을 이용하는 방법을 볼 수도 있습니다.
@Alex 코드 샘플 – zdim
에 단어가있는 설명을 나누어 답을 편집했습니다. 도움이되었습니다. 하지만 마지막으로, 필자는 시스템에 다음과 같은 명령을 실행할 수있는 패키지 번들을 설치했습니다 : "bundle/my/path [some options]"그래서이 데몬에게 "번들"명령을 사용하라고했습니다. 그것은 "번들"이라는 명령을 찾을 수 없다는 것을 알려줍니다. 무엇이 잘못 될지 생각하고 있습니까? – Thomas
@Alex 쉘에서 실행할 때,'bundle'은 쉘 설정에서 정의 된 표준 경로에 있습니다. 스크립트에서'bundle'을 실행하여 쉘과 관련되게 할 수 있습니다. 그러면'PATH'를 사용할 수 있지만 쉘을 바이 패스하면 그렇지 않습니다. 스크립트에서 나는 실행할 프로그램의 전체 경로를 지정하고자하므로'/ path/to/bundle/bundle ... '. – zdim
- 1. PHPMyAdmin에서 CSV 파일을 삭제해야합니다.
- 2. 포크로 커밋을 삭제해야합니다
- 3. CSV에서 빈 열을 삭제해야합니다.
- 4. 큰 파일을 삭제해야합니다.
- 5. 프로덕션 마스터 테이블에서 레코드를 삭제해야합니다.
- 6. liquibase : dropAll은 트리거 함수도 삭제해야합니다.
- 7. 스프레드 시트에서 관련없는 행을 삭제해야합니다.
- 8. 태그 뒤에 빈 공간을 삭제해야합니다.
- 9. 여러 파일에서 문자열을 찾아 삭제해야합니다.
- 10. 오류가 발생하여 dijit DropDownMenu를 삭제해야합니다.
- 11. 내 앱에서 사용중인 파일을 삭제해야합니다.
- 12. 3 일이 넘은 테이블을 삭제해야합니다.
- 13. 사용자 정의 데이터 형식을 삭제해야합니다.
- 14. ColdFusion : 다운로드가 곧 시작됩니다.
- 15. tweenjs .call() 곧 호출됩니다.
- 16. Asp.net 세션이 곧 만료됩니다.
- 17. 곧 끝나는 프로그램은
- 18. 바이너리가 곧 시작될 세그먼트 오류
- 19. (곧 출시 예정) 레일 페이지
- 20. HttpListener 응답이 곧 '대형'버퍼로 플러시됩니다.
- 21. jquery가 곧 실행됩니다. 크롬에서만 작동
- 22. Laravel 4.2은 곧 다른 페이지가
- 23. 곧 제출 예정 알림 신청
- 24. CONST 타입 한정자 곧 ++ C에서
- 25. 누락 된 파일이있는 CarrierWave 첨부 파일을 삭제해야합니다.
- 26. 30 열이있는 테이블에서 중복 레코드를 삭제해야합니다.
- 27. 중복을 유지하고 모든 고유 라인을 삭제해야합니다.
- 28. img 태그에 url이 없으면 img 태그를 삭제해야합니다.
- 29. row_number()를 사용하여 테이블에서 중복 레코드를 삭제해야합니다.
- 30. Drupal MySQL 데이터베이스에서 참조되지 않은 행을 삭제해야합니다.
'cmd'를'bash -c cmd'로 변경하십시오 (env 변수가'.bash_profile'에 의해 설정되었다고 가정하십시오). – ikegami
매우 제한된 PATH입니다. '/ bin' 또는'/ usr/bin'에 대한 접근은 조금 특이합니다. 그게 당신이 의도 한 것이지? 또한'export HOME =/home/tim' 행은 좋지 않습니다. '= '기호 주위에 공백이 없어야합니다. –
예, 맞습니다. 공간이 없습니다. 나는 "수동으로"라인을 썼을 때 실수로 그들을 추가했고, 경로는 일부/bin 폴더로 이어졌습니다. – Thomas