2014-10-16 65 views
2

我有類似於Ruby腳本下面的內容:紅寶石系統調用CP:缺少目標文件操作後

from = "/path/to/script.rb" 
to = "/path/to/destination/" 
puts "Copying #{from} to #{to}" 
system("cp #{from} #{to}") 

這使得在終端輸出如下:

copying /path/to/script.rb 
to /path/to/destination/ 
cp: missing destination file operand after ‘/path/to/script.rb’ 
Try 'cp --help' for more information. 

我沒有在終端運行以下問題:

cp /path/to/script.rb /path/to/destination 

也不在紅寶石腳本中:

system("cp /path/to/script.rb /path/to/destination") 

任何意見,如何更好地排查我的腳本或指針在正確的方向將不勝感激。

+0

不'系統( 'CP',從,到)'工作? – 2014-10-16 18:41:47

+0

問題是我正在從一個文件中讀取,而不是修剪換行符。我只是編輯輸出來說明。 – 2014-10-16 18:44:17

+0

您應該回答自己的問題並將其標記爲已接受。 – 2014-10-16 18:45:46

回答

2

我正在從一個文件中讀取,而不是修剪換行符。這個應該已經從終端輸出中顯而易見(注意'到'之前的換行符和空格)。

下更改:

files = [] 
File.open(file-of-paths).read.each_line do |line| 
files.push(line) 
end 

下面的解決了這個問題:

files = [] 
File.open(file-of-paths).read.each_line do |line| 
files.push(line.chomp) 
end 
+1

您應該使用['File.foreach'](http://www.ruby-doc.org/core-2.1.3/IO.html#method-c-foreach)爲了遍歷行。它更高效,簡潔,並在完成後關閉文件。 – 2014-10-16 18:51:15

+0

感謝您的提示!更新了我的腳本。 – 2014-10-16 19:38:30