我在寫一個快速的Rails應用程序,並想知道如何驗證exec'd命令的成功。我正在運行的兩個命令是和SVN更新,以及從一個目錄到另一個目錄的cp。驗證終端命令的最佳方式是在Rails中成功運行?
6
A
回答
8
如果使用Kernel.system()方法會返回一個布爾值,指示命令的成功。
result = system("cp -r dir1 dir2")
if(result)
#do the next thing
else
# handle the error
有不同紅寶石系統的很好的比較命令here。
-4
對於SVN更新,在更新之前和之後檢查版本號。
svn_start_version = IO.popen("svn info").readlines[4]
`svn update`
svn_end_version = IO.popen("svn info").readlines[4]
if svn_end_version > svn_start_version
"success"
end
對於cp,您可以對原始文件進行文件大小檢查,使其等於複製的文件。
source_file_size = IO.popen("du file1").readlines
`cp file1 file2`
dest_file_size = IO.popen("du file2").readlines
if dest_file_size == source_file_size
"success"
end
2
你是如何執行外部命令的?紅寶石system()
功能取決於命令是否成功true
或false
返回。此外,$?
包含錯誤狀態。
1
- 只要是迂腐,d命令「因爲
exec
與exec
替換當前的程序d命令」你不能驗證一個exec
,因此命令將不會返回到Ruby進行驗證。 - 對於CP,至少,你很可能會使用文件實用程序模塊(Ruby的標準庫的一部分),而不是下降到外殼的更好。
- 如上所述,所述
$?
預定義的變量給你的最後一個命令的返回代碼由system()
或反引號運算符來執行。
+0
是的,當我第一次開始使用ruby編程時,執行官真的把我扔了。基本上,不要使用它! – 2008-10-05 20:09:05
相關問題
- 1. 反覆調用終端命令的最佳方式
- 2. 在終端中運行各種命令
- 3. 在終端上運行的MySQL命令被卡住了,但是phpmyadmin成功了
- 4. 在後臺運行命令並註銷(Linux)的最佳方式
- 5. 最佳方式命令
- 6. 從命令行運行中小型Java程序的最佳方式是什麼?
- 7. 運行Mac終端命令的快捷方式
- 8. Linux和終端:如何在終端預約中運行命令?
- 9. 運行終端命令在CentOS
- 10. 以編程方式在java中執行終端中的命令
- 11. 保存終端命令到打開時在終端運行命令的文件
- 12. 以編程方式打開Gnome終端並運行命令
- 13. 運行遠程命令通過ssh扭曲的最佳方式?
- 14. 終端命令「rails server」
- 15. Rails命令只能在一個終端上運行
- 16. 成功付款後驗證新用戶的最佳方式是什麼?
- 17. 運行命令的終端窗口
- 18. 是否可以獲取在父終端中運行的最後一個命令?
- 19. 上JupyterNotebook,而不是在終端中運行命令Tensorflow
- 20. 是否可以在Rubymine中運行終端/命令提示符?
- 21. 如何以編程方式在android中執行終端命令
- 22. 在WPF中處理驗證的最佳方式是什麼?
- 23. 更改終端的命令行格式
- 24. 分配python命令行工具的最佳方式是什麼?
- 25. 從基於Web的界面運行shell命令的最佳方式是什麼?
- 26. 運行終端命令節點JS
- 27. 使用NSTask運行終端命令
- 28. (MAC)終端確定運行命令
- 29. Docker,Kitematic,運行終端命令
- 30. 通過xCode運行終端和命令
如果什麼顛覆庫沒有改變?你的代碼會顯示失敗。如果文件內容發生變化但分配的塊數量不足(複製操作失敗)怎麼辦?您的代碼會顯示成功。 – 2008-10-05 02:24:49