2010-11-28 5 views
1

런타임시 폴더 위치를 지정할 수 있도록 Ruby 스크립트를 약간 변경하려고합니다.변수를 Dir.glob와 함께 사용

저는 Ruby 프로그래머가 아니지만 올바른 구문을 찾을 수 없는데도 이것이 쉬운 작업이라고 확신했습니다.

puts "Enter folder name and press enter: " 
folder = gets 

files = Dir.glob("folder/[0-100]*.txt"); # What is the correct syntax to use, so the content of the variable folder will be used? 

puts files 

답변

1

문자열로 변수 (또는 루비 표현)를 삽입하려면, 당신은 #{} 사용할 수 있습니다

Dir.glob("#{folder}/[0-100]*.txt") 

는 또한 gets에 의해 반환되는 문자열에 개행 (\n)가 않습니다 물론 이것은 폴더 이름에는 유효하지 않습니다. 따라서이를 제거하려면 chomp 메서드를 사용해야합니다.

+0

Dir.glob ("system_logs/[0-100] * .txt")와 같이 폴더 이름을 직접 Dir.glob에 쓰면 모든 로그 파일 목록이 Dir과 함께 쓰여집니다. glob ("# {folder}/[0-100] *. txt")와 gets에 주어진 것과 같은 폴더 이름은 아무 것도 써 내지 않습니까? – jet8832

+1

@jet :'folder = gets.chomp'를해야합니다. 그렇지 않으면'folder'는 끝에 개행 문자를 갖습니다. – sepp2k

+0

고마워, 그게 문제를 해결했다. – jet8832