내가 환경 설정이 필요한 프로그램이 있다고 가정 해 봅시다. Let 's는 단지 Perl을 가장하고 환경을 수정하고 싶습니다 (도서관을 특별 장소로 검색하기 위해). 유닉스에서 표준 방식으로 일을 할 때마다 나는 값 비싼 대가를 치르고 융통성있게 처벌한다. 간단한 쉘 스크립트를 사용하여 프로세스 트리에 추가 프로세스를 삽입한다는 것을 알고 있습니다. 자체 프로세스 트리에 액세스하는 모든 프로세스는 약간의 루프가 발생할 수 있습니다. 사소한 방식으로 재귀적인 것은 환경의 여러 확장을 방어해야합니다. 프로그램 파이프 (또는 STDIN, STDOUT 또는 STDERR 닫기 및 열기)에 닮은 것은 가장 큰 관심사입니다. 나는 나 자신에게 무엇을하고 있는가?쉘 스크립트를 사용하여 프로그램을 래핑하는 함정?
1
A
답변
3
내가 뭘하고 있니?
아무것도하지 말고 자신을 모두 알아 듣겠습니까?
환경을 설정하기 위해 쉘 스크립트에서 프로그램을 감싸는 것은 실제로 매우 표준 적이며 무언가를하려고하지 않는 한 위험은 매우 희박합니다. 정말입니다.
UNIX 프로세스는 설계 상 매우 저렴합니다. - exec
키워드를 사용하십시오. 새 프로세스를 포크하는 대신 exec 파일 대신에 exec 파일을 사용하십시오. 현재 하나. 그래서, 당신은 당신은 단지
#!/bin/bash -
FOO=hello
PATH=/my/special/path:${PATH}
exec perl myprog.pl
을 말할 것
#!/bin/bash -
FOO=hello
PATH=/my/special/path:${PATH}
perl myprog.pl
있었다 수있는 곳과 예비 과정은 사라집니다.
그러나이 트릭은 거의 가치가 없습니다. 하나의 카운터 - 예는 기본 쉘을 변경할 수없는 경우, 그것은 다음 등 프로세스 제어를위한 예상 된 동작을 얻고 있기 때문에, 단지 쉘을 실행하는 대신에
$ exec zsh
말을 유용한다는 것입니다.
관련 문제
- 1. 쉘 스크립트를 사용하여 프로그램을 감독하는 방법은 무엇입니까?
- 2. 쉘 스크립트를 사용하여 비밀번호 제공
- 3. 쉘 스크립트의 하위 디렉터리 아래에있는 임의의 명령을 래핑하는 방법이 있습니까
- 4. MySQL 쉘 스크립트를 사용하여 프로 시저 만들기
- 5. 루프와 쉘 스크립트를
- 6. 쉘 스크립트를 사용하여 두 번째 열 바꾸기
- 7. Perl을 사용하여 쉘 스크립트를 만들려면 어떻게해야합니까?
- 8. 쉘 스크립트를 사용하여 임의의 파일 생성
- 9. 쉘 스크립트를 사용하여 XML 파일을 생성
- 10. 쉘 스크립트를 사용하여 글꼴 크기 수정
- 11. java에서 쉘 스크립트를 호출하면
- 12. 쉘 스크립트를 C 변환기
- 13. 인수로 건네받은 프로그램을 실행하는 단순한 쉘 스크립트를 구축한다
- 14. cygwin bash를 실행하고 프로그램을 실행하는 쉘 스크립트를 작성하십시오.
- 15. 자바를 통해 쉘 스크립트를 실행하려면
- 16. 쉘 스크립트를 사용하여 scp를 사용하여 파일을 다운로드 할 수 있습니까
- 17. 쉘 스크립트 내에서 쉘 스크립트를 실행 중 - 좋거나 나쁘다.
- 18. 쉘 스크립트를 사용한 검색 도구
- 19. 쉘 스크립트를 사용한 CGI 프로그래밍
- 20. 쉘 스크립트를 신속하게 디렉토리로 이동
- 21. 쉘 스크립트를 컴파일하면 suid를 사용할 수 있습니다.
- 22. 로컬 Perl 프로그램을 사용하여 원격 시스템에서 쉘 스크립트를 실행할 수 있습니까?
- 23. Linux 쉘 스크립트 또는 Java 프로그램을 작성해야합니까?
- 24. 유닉스 쉘 스크립트를 작성하여 피드 파일 만들기
- 25. 다른 쉘 스크립트에서 쉘 스크립트를 호출 할 때의 차이점
- 26. 쉘 스크립트를 사용하는 Solaris 서버의 시동 시간
- 27. 자바를 사용하여 쉘 스크립트를 실행하는 중에 문제가 발생했습니다.
- 28. 종료 코드를 사용하여 쉘 스크립트를 순차적으로 실행하려면 어떻게해야합니까?
- 29. Unix 쉘 스크립트를 사용하여 데이터베이스를 조작 할 수 있습니까?
- 30. 쉘 스크립트를 사용하여 반복적으로 디렉토리를 탐색하고 문자열을 바꿉니다.
저는 이것을 받아 들일 것입니다. 나는 많이 걱정한다. – ojblass