ما هي أفضل طريقة للتحقق من محطة القيادة وتشغيل بنجاح في القضبان ؟
-
05-07-2019 - |
سؤال
أنا أكتب بسرعة القضبان التطبيق و أتساءل كيف يمكن التحقق من صحة نجاح المديرة أن القيادة.الأمرين أنا على التوالي و إس في تحديث و م أ من دليل واحد إلى آخر.
المحلول
إذا كنت تستخدم Kernel.system () طريقة فإنه سيعود منطقية مما يدل على نجاح الأمر.
result = system("cp -r dir1 dir2")
if(result)
#do the next thing
else
# handle the error
وهناك مقارنة جيدة من مختلف أوامر النظام روبي <لأ href = "http://blog.jayfields.com/2006/06/ruby-kernel-system-exec-and-x.html" يختلط = "noreferrer "> هنا .
نصائح أخرى
وكيف حالك تنفيذ الأوامر الخارجية؟ ترجع الدالة system()
روبي true
أو false
اعتمادا على ما إذا كان الأمر ناجحا. بالإضافة إلى ذلك، $?
يحتوي على حالة الخطأ.
- لمجرد أن يكون متحذلق لا يمكنك صحة
exec
'd الأمر لأنexec
يستبدل البرنامج الحالي معexec
'd الأمر ، وبالتالي فإن الأمر لن يعود إلى روبي من أجل التحقق من الصحة. - ل م أ ، على الأقل ، من المحتمل أن يكون أفضل من استخدام FileUtils وحدة (جزء من روبي المكتبة القياسية) ، بدلا من إسقاط قذيفة.
- كما ذكر أعلاه ،
$?
مسبقا المتغير سوف تعطيك رمز الإرجاع من الماضي الأوامر ليتم تنفيذها من قبلsystem()
أو backtick المشغل.
لتحديث 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
لحزب المحافظين، هل يمكن القيام فحص حجم الملف على الملف الأصلي يجري على قدم المساواة إلى الملف المنسوخ.
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
لا تنتمي إلى StackOverflow