Ruby中的命令行參數(shù)
來源:教育資源網(wǎng)
?
發(fā)布時間:2020-11-28 08:00:19
?
點(diǎn)擊:1612
許多紅寶石腳本沒有文本或圖形界面。他們只需跑步,完成工作,然后退出。要與這些腳本進(jìn)行通信以更改其行為,必須使用命令行參數(shù)。
命令行是UNIX命令的標(biāo)準(zhǔn)操作模式,由于Ruby廣泛用于UNIX和類似UNIX的系統(tǒng)(如Linux和macOS),因此遇到這種類型的程序是非常標(biāo)準(zhǔn)的。
如何提供命令行參數(shù)
Ruby腳本參數(shù)由shell傳遞給Ruby程序,該程序接受終端上的命令(如bash)。
在命令行中,腳本名稱后面的任何文本都被視為命令行參數(shù)。用空格分隔,每個單詞或字符串將作為單獨(dú)的參數(shù)傳遞給Ruby程序。
以下示例顯示了用于啟動的正確語法測試來自命令行的Ruby腳本,參數(shù)為test1和test2。
$/測試test1 test2高溫防暑小常識
您可能會遇到需要將參數(shù)傳遞給Ruby程序但命令中有空格的情況。起初似乎是不可能的,因?yàn)闅づ茖⒂嘘P(guān)空間的爭論分開,但有一個規(guī)定。
任何雙引號的論點(diǎn)都不會分開。在將其傳遞給Ruby程序之前,外殼會刪除雙引號。
以下示例將單個參數(shù)傳遞給測試Ruby腳本,test1 test2:
$/測試"test1 test2"
如何使用命令行參數(shù)
在您的Ruby程序中,您可以訪問shell使用ARGV特殊變量傳遞的任何命令行參數(shù)。ARGV是一個數(shù)組變量,它以字符串形式保存shell傳遞的每個參數(shù)。
該程序迭代ARGV數(shù)組并打印出其內(nèi)容:
#!/usr/bin/env紅寶石ARGV.each做| a|puts"參數(shù):#{a}"結(jié)束
以下是啟動此腳本的bash會話的摘錄(保存為文件測試)有各種論點(diǎn):
$/測試test1 test2"三-四"參數(shù):test1參數(shù):test2論證:三四