Elixir 대화 식 Shell: 4. 파일 과 스 크 립 트 처리

3239 단어 elixir
Elixir 대화 식 Shell: 1. 실행 시 시스템 태그 Elixir 대화 식 Shell: 2. 상용 명령 Elixir 대화 식 Shell: 3. 로 컬 과 원 격 Shell Elixir 대화 식 Shell 만 들 기: 4. 파일 과 스 크 립 트 처리 Elixir 대화 식 Shell: 5. IEx 설정
이것 은 IEx 다섯 부분 중 네 번 째 부분 입 니 다. 이 부분 에서 저 희 는 IEx 에서 파일 과 스 크 립 트 를 처리 하 는 방법 을 설명 할 것 입 니 다.
파일 가 져 오기
입력 h import_file 문서 보기
iex(remote@localhost)2> h import_file
Evaluates the contents of the file at path as if it were directly typed into the shell.
...
import_file 가 져 온 파일 에 값 을 구 하 는 역할 을 합 니 다. 셸 에 직접 입력 하 는 것 처럼 파일 의 내용 을 복사 하여 붙 여 넣 는 효과 와 똑 같 습 니 다.
로 컬 변수
다음 과 같은 IEx Shell 파일 이 있 습 니 다.
fred = :fred
defmodule Hello do
  def foo do
    "This is foo"
  end
end
IO.puts fred
iex(1)> import_file "test1.exs"
fred
:ok
iex(2)> fred
:fred
iex(3)> Hello.foo
"This is foo"
iex(4)> 

왜냐하면 test1.exs IEx 에서 가 져 온 상하 문 에서 값 을 구하 기 때문이다import_file
fred = :fred
defmodule Hello do
  def foo do
    "This is foo"
  end
end

x10 = x * 10
#    `x`      

정의 test2.exs, 가 져 오기 x
iex(1)> x = 5                  
5
iex(2)> import_file
import_file/2    
iex(2)> import_file "test2.exs"
50
iex(3)> x10
50

우 리 는 test2.exs 의 정확 한 결 과 를 보 았 다 x10 = x * 10.50 검색
  • iex - s mix - 하나의 IEX -S 항목 에서 로 컬 mix
  • 을 찾 습 니 다.
    그렇지 않 으 면
  • 파일 이름 에는 확장자 가 포함 되 어야 합 니 다
  • 파일 을 실행 할 수 있어 야 합 니 다
  • 파일 은 절대 경 로 를 제공 하지 않 는 한 경로 에 있어 야 합 니 다
  • mix.exs IEx.pry 는 우리 에 게 Elixir 코드 를 디 버 깅 하 는 능력 을 제공 합 니 다. 우 리 는 IEx.pry 위치 에 삽 입 된 역할 영역 내의 변수 값 을 방문 할 수 있 습 니 다. IEx.pry IEx 를 IEx.pry 위치 에 삽입 한 IEx.pry 에 들 어가 게 할 수 있 기 때문에 이 역할 영역 외부의 변 수 는 IEx 에서 더 이상 접근 할 수 없습니다. 아래 의 예 는 가 어떻게 작 동 하 는 지 설명 합 니 다.
    우선 IEx.pry 파일 을 만 듭 니 다.
    cat > pry.exs <
    iex(1)> bar = :bar
    :bar
    iex(2)> import_file "pry.exs"
    {:module, Hello,
     <<70, 79, 82, 49, 0, 0, 15, 24, 66, 69, 65, 77, 69, 120, 68, 99, 0, 0, 0, 126, 131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95, 100, 111, 99, 115, 95, 118, 49, 108, 0, 0, 0, 4, 104, 2, ...>>,
     {:foo, 0}}
    iex(3)> bar
    :bar
    iex(4)> fred
    :fred
    iex(5)> Hello.foo   #        
    Request to pry #PID<0.62.0> at iex:7
    Allow? [Yn] Y
    
    Interactive Elixir (1.2.1) - press Ctrl+C to exit (type h() ENTER for help)
    pry(1)> bar  #            
    ** (UndefinedFunctionError) undefined function :erl_eval.bar/0
        
    pry(1)> fred
    ** (UndefinedFunctionError) undefined function :erl_eval.fred/0
        
    pry(1)> x   #   foo       x 
    5
    pry(2)> x = 4
    4
    pry(3)> respawn #   `IEx.pry`      IEx Shell
    
    Interactive Elixir (1.2.1) - press Ctrl+C to exit (type h() ENTER for help)
    x is 5  #   `IEx.pry`       , x       
    :ok 

    좋은 웹페이지 즐겨찾기