Ruby學習之命令列選項&環境變數
阿新 • • 發佈:2019-01-02
這個ruby檔案一般呢都是通過命令列來執行的,語法格式如下:
ruby [ options ] [.] [ programfile ] [ arguments ... ]
直譯器可以通過下列選項被呼叫,來控制直譯器的環境和行為,來看下具體資料:
選項 | 描述 |
---|---|
-a | 與 -n 或 -p 一起使用時,可以開啟自動拆分模式(auto split mode)。請檢視 -n 和 -p 選項。 |
-c | 只檢查語法,不執行程式。 |
-C dir | 在執行前改變目錄(等價於 -X)。 |
-d | 啟用除錯模式(等價於 -debug)。 |
-F pat | 指定 pat 作為預設的分離模式($;)。 |
-e prog | 指定 prog 作為程式在命令列中執行。可以指定多個 -e 選項,用來執行多個程式。 |
-h | 顯示命令列選項的一個概覽。 |
-i [ ext] | 把檔案內容重寫為程式輸出。原始檔案會被加上副檔名 ext 儲存下來。如果未指定 ext,原始檔案會被刪除。 |
-I dir | 新增 dir 作為載入庫的目錄。 |
-K [ kcode] | 指定多位元組字符集編碼。e 或 E 對應 EUC(extended Unix code),s 或 S 對應 SJIS(Shift-JIS),u 或 U 對應 UTF-8,a、A、n 或 N 對應 ASCII。 |
-l | 啟用自動行尾處理。從輸入行取消一個換行符,並向輸出行追加一個換行符。 |
-n | 把程式碼放置在一個輸入迴圈中(就像在 while gets; ... end 中一樣)。 |
-0[ octal] | 設定預設的記錄分隔符($/)為八進位制。如果未指定 octal 則預設為 \0。 |
-p | 把程式碼放置在一個輸入迴圈中。在每次迭代後輸出變數 $_ 的值。 |
-r lib | 使用 require 來載入 lib 作為執行前的庫。 |
-s | 解讀程式名稱和檔名引數之間的匹配模式 -xxx 的任何引數作為開關,並定義相應的變數。 |
-T [level] | 設定安全級別,執行不純度測試(如果未指定 level,則預設值為 1)。 |
-v | 顯示版本,並啟用冗餘模式。 |
-w | 啟用冗餘模式。如果未指定程式檔案,則從 STDIN 讀取。 |
-x [dir] | 刪除 #!ruby 行之前的文字。如果指定了 dir,則把目錄改變為 dir。 |
-X dir | 在執行前改變目錄(等價於 -C)。 |
-y | 啟用解析器除錯模式。 |
--copyright | 顯示版權宣告。 |
--debug | 啟用除錯模式(等價於 -d)。 |
--help | 顯示命令列選項的一個概覽(等價於 -h)。 |
--version | 顯示版本。 |
--verbose | 啟用冗餘模式(等價於 -v)。設定 $VERBOSE 為 true。 |
--yydebug | 啟用解析器除錯模式(等價於 -y)。 |
順道說一嘴,單字元的命令列選項可以組合使用,像下面兩行程式碼,就是表達了同樣的意思:
ruby -ne 'print if /Ruby/' /usr/share/bin
ruby -n -e 'print if /Ruby/' /usr/share/bin
Ruby 直譯器使用下列環境變數來控制它的行為:
變數 | 描述 |
---|---|
DLN_LIBRARY_PATH | 動態載入模組搜尋的路徑。 |
HOME | 當沒有引數傳遞給 Dir::chdir 時,要移動到的目錄。也用於 File::expand_path 來擴充套件 "~"。 |
LOGDIR | 當沒有引數傳遞給 Dir::chdir 且未設定環境變數 HOME 時,要移動到的目錄。 |
PATH | 執行子程序的搜尋路徑,以及在指定 -S 選項後,Ruby 程式的搜尋路徑。每個路徑用冒號分隔(在 DOS 和 Windows 中用分號分隔)。 |
RUBYLIB | 庫的搜尋路徑。每個路徑用冒號分隔(在 DOS 和 Windows 中用分號分隔)。 |
RUBYLIB_PREFIX | 用於修改 RUBYLIB 搜尋路徑,通過使用格式 path1;path2 或 path1path2,把庫的字首 path1 替換為 path2。 |
RUBYOPT | 傳給 Ruby 直譯器的命令列選項。在 taint 模式時被忽略(其中,$SAFE 大於 0)。 |
RUBYPATH | 指定 -S 選項後,Ruby 程式的搜尋路徑。優先順序高於 PATH。在 taint 模式時被忽略(其中,$SAFE 大於 0)。 |
RUBYSHELL | 指定執行命令時所使用的 shell。如果未設定該環境變數,則使用 SHELL 或 COMSPEC。 |
ENV 物件包含了所有當前設定的環境變數列表,在Unix中,我們可以使用 env 命令來檢視所有環境變數的列表,結果如下:
HOSTNAME=ip-72-167-112-17.ip.secureserver.net
RUBYPATH=/usr/bin
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
SSH_CLIENT=122.169.131.179 1742 22
SSH_TTY=/dev/pts/1
USER=amrood
JRE_HOME=/usr/java/jdk/jre
J2RE_HOME=/usr/java/jdk/jre
PATH=/usr/local/bin:/bin:/usr/bin:/home/guest/bin
MAIL=/var/spool/mail/guest
PWD=/home/amrood
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/java/jdk
LANG=C
HOME=/root
SHLVL=2
JDK_HOME=/usr/java/jdk
LOGDIR=/usr/log/ruby
LOGNAME=amrood
SSH_CONNECTION=122.169.131.179 1742 72.167.112.17 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
RUBYLIB=/usr/lib/ruby
G_BROKEN_FILENAMES=1
_=/bin/env
好啦,本次記錄就到這裡了。
如果感覺不錯的話,請多多點贊支援哦。。。