• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ruby的命令行選項

    發布: 2007-7-04 20:03 | 作者: admin | 來源:  網友評論 | 查看: 53次 | 進入軟件測試論壇討論

    領測軟件測試網

    請使用如下命令行啟動Ruby解釋器.

    ruby [ option ...] [ -- ] [ programfile ] [ argument ...]

    這里的"option"指下文將要提到的命令行選項中的一個。"--"則顯式地表明選項字符串到此結束。"programfile"是裝載Ruby腳本的文件。若省略不寫或者寫成"-"時,Ruby會把標準輸入當做Ruby腳本進行處理。

    programfile若以“#!”開始,則進行特殊的處理。詳細情況請參考下文的關于解釋器行。

    argument中的字符串將變成內部常數ARGV的初始值。在有的環境中(Win32),標準shell不會展開通配符,這時Ruby解釋器將自行展開通配符然后賦值給ARGV。此時,可使用的通配符有“*”、“?”、“[]”和“**/”(與Dir.glob不同,這里不能使用“{..}”)。在Win32環境中,若不想展開通配符的話,請使用單引號(')將參數括起來。

    命令行選項

    Ruby解釋器可接受下列命令行選項;旧吓cPerl的類似。

    -0數字

    以8進制數指定輸入記錄分隔符('$/')。

    若不指定數字的話,分隔符是空字符(等同于$/="\0")。數字后面可以有其他的開關(switch)。

    -00代表段落模式(等同于$/=""),-0777(因為這個代碼不代表任何文字)表示將文件的全部內容一次性讀入(相當于$/=nil)。

    -a

    與'-n'或'-p'一起使用時,可以打開自動拆分模式(auto split mode)。自動拆分模式將在各個循環前執行以下動作。

    $F = $_.split

    若沒有同時指定'-n'或'-p'選項的話將不起作用。

    -C directory

    執行腳本之前,先移動到指定目錄。

    -c

    只對腳本進行編譯,而并不執行。編譯后若沒發現語法錯誤,則顯示“Syntax OK”。

    --copyright

    顯示版權信息。

    -Kc

    指定Ruby要處理的漢字編碼。若是'E'或'e',則Ruby認定字符串或訪問文件中的漢字編碼為EUC。同樣,若是'S'或's'的話則認定為SJIS。若是'U'或'u'則當作UTF-8處理。'N'表示不對漢字進行處理。該選項的默認值就是N(NONE)。

    將來有可能會改變文字編碼處理方式,屆時該選項的內容也會有所變化。

    -d --debug

    以調試模式執行腳本。將$DEBUG設置成true。

    -e script

    在命令行中指定腳本。添加-e選項后,就不會從參數中抽取腳本文件名了。

    若多次使用-e選項時,系統會按照以下方式處理。

    下列各表達式的意義相同。 ruby -e "5.times do |i|" -e "puts i" -e "end" ruby -e "5.times do |i| puts i end" ruby -e "5.times do |i|; puts i; end" -Fregexp

    將regexp指定給輸入域分隔符(field separator)。

    -h --help

    顯示命令行選項的簡介。

    -i[extension]

    對參數中指定的文件內容進行替換(in-place edit)。原始文件將被加上擴展名并保存下來。若沒有擴展名的話,將不會進行備份,而且只有替換后的文件會被保留下來。

    例:

    % echo matz > /tmp/junk % cat /tmp/junk matz % ruby -p -i.bak -e '$_.upcase!' /tmp/junk % cat /tmp/junk MATZ % cat /tmp/junk.bak matz -I directory

    指定(追加)加載文件的路徑。指定的目錄將被追加到Ruby的數組變量($:)中。

    -l

    進行行尾自動處理。首先,將$\改為$/的值,在print輸出時添加換行。若使用了-n標志或-p標志的話,將對gets讀入的各行末尾進行String#chop!處理。

    -n

    若使用了該標志,則整個程序會像sed -n或awk一樣,被

    while gets ... end

    括起來運行。

    -p

    與-n標志相仿,在各循環后輸出變量$_的值。

    例:

    % echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"' MATZ -r feature

    執行腳本前,先對feature指定的庫執行require操作。與'-n'選項、'-p'選項一起使用時特別奏效。

    -s

    對跟在腳本名后并且以'-'開頭的參數進行解釋,并將其值賦值給同名的全局變量。遇到以'--'開頭的參數就停止解釋,并將該參數從ARGV中刪除。

    例:

    #! /usr/local/bin/ruby -s # prints "true" if invoked with `-xyz' switch. print "true\n" if $xyz -S

    該選項表明,當腳本名不是以'/'開頭的時候,要使用環境變量PATH的值搜索腳本。若您的機器不支持#!的話,可以使用下列方法模擬#!的運行:

    #!/bin/sh exec ruby -S -x $0 "$@" #! ruby

    因為第1行的關系,系統把腳本交給/bin/sh。/bin/sh執行第2行后啟動Ruby解釋器。在-x選項的作用下,Ruby解釋器把從'#!'到包含'ruby'的行的內容全部讀入。

    根據系統的不同,$0未必包含完整路徑,因此有必要使用'-S'選項來告訴Ruby在必要時搜索腳本。

    -T[level]

    執行不純度測試。若給level指定了一個值之后,安全等級也會使用這個值。省略level時,其值為1。對于CGI程序來說,將其指定為-T1比較合適。$SAFE的等級也將被設定。

    -v --verbose

    冗長模式。啟動時顯示版本信息,然后將內部變量$VERBOSE設為true。當此變量為true時,眾多的方法在運行時會顯示冗長的信息。若只設定'-v'選項,而沒有其他參數時,啟動后會先顯示版本信息,然后就結束運行(不會等待來自標準輸入的腳本)。

    --version

    顯示Ruby的版本信息。

    -w

    不顯示版本信息的冗長模式。

    -W[level]

    ruby 1.8 特性

    可以指定3種級別的冗長模式,如下所示。

    -W0: 不顯示警告 -W1: 只顯示重要警告(默認) -W2 or -W: 顯示所有警告

    內部變量$VERBOSE被分別設置為nil,false,true。

    -x[directory]

    從message中取出腳本并執行。讀入腳本的范圍是從'#!'開始,直到包含'ruby'的行為止。用EOF(文件結束),^D(controlD),^Z(controlZ)或保留字_END_來指定腳本結束。

    若指定了目錄名的話,則在執行腳本前移動到該指定目錄。

    -y --yydebug

    編譯器調試模式。編譯腳本時顯示語法分析的過程。該顯示過程會很漫長,可能只對那些想調試編譯器的人有用。

    關于解釋器行

    命令行指定的腳本是以'#!'開頭的文件,當該行中不包含'ruby'時,將替代OS把'#!'后面的字符串看成命令行,然后啟動解釋器。

    例如,用Ruby運行下面的shell腳本時將啟動sh。

    #!/bin/sh -vx echo "$@"

    若此行中包含'ruby'的話,則'ruby'左側的部分將被忽略,右側以'-'開頭的部分被視為選項。

    這里指定的選項將被追加到以命令行方式指定的選項之中。這主要是為了嵌入那些本該在腳本中指定的選項。例如,下面腳本的作用等價于使用命令行方式指定-Ke選項。

    #! ruby -Ke

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>