source 명령어를 사용하고 싶습니다.

549 views
Skip to first unread message

cocoshan

unread,
May 14, 2013, 9:02:59 PM5/14/13
to rub...@googlegroups.com
리눅스 명령어 source ~/etc/profile과 같이 특정 파일에 등록되어있는 내용을 실행시키고 싶은데 생각처럼 잘되지않네요.
system()명령어나 script ""do 와 같은 명령으로 실행시켜봐도 그 문장안에서만 도는 느낌이네요
정확한 목적은 리눅스의 alias 명령을 등록시키고싶은데 혹시 방법이 있을까요?

김성식

unread,
May 20, 2013, 12:19:22 AM5/20/13
to rub...@googlegroups.com
source와 똑같은 기능(시스템 환경변수를 바로 로드)은 ruby에 없지만, 

ruby 환경 변수인 ENV['환경변수']를 이용하시면 어느정도 대체할 수 있을것 같습니다. 

아래 문서를 확인해보세요.
http://ruby-doc.org/core-1.9.3/ENV.html

2013년 5월 15일 수요일 오전 10시 2분 59초 UTC+9, cocoshan 님의 말:

Sung Min Park

unread,
May 21, 2013, 8:54:36 AM5/21/13
to rub...@googlegroups.com
source는 리눅스 명령어가 아니라 쉘내부 명령어 입니다.

ruby를 실행할 경우 쉘은 뒤로 빠져서 대기하는 상태가 됩니다. 이상태에서 쉘 내부 명령어를 자식인 ruby에서 실행할 수 있는 방법은 없습니다.
ENV를 지정하는 것도 ruby의 환경변수가 셋팅되는 것이지 ruby를 호출한 상위 쉘의 상태가 변경될수는 없습니다. system같은경우 매번 새로운 쉘이 실행됩니다.
system으로 alias를 지정하면 새롭게 생성된 쉘에 alias가 지정되는 것입니다.

명령어의 형태가 달라도 된다면 다른 방법으로 할 수 는 있습니다.
source는 명령어는 env를 셋팅하는게 아니라 현재 쉘에서 해당 스크립트를 바로 실행하는 기능입니다.
$ source ralias
이렇게 하면 원하시는 효과를 내실수 있습니다.

결국 질문이 잘못된 것으로 보입니다. 왜 ruby에서 alias를 설정해야 하는 건가요?
--
 
---
Google 그룹스 '한국 루비 사용자 모임' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 rubykr+un...@googlegroups.com에 이메일을 보내세요.
http://groups.google.com/group/rubykr?hl=ko에서 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/groups/opt_out을(를) 방문하세요.
 
 

Reply all
Reply to author
Forward
0 new messages