天天看點

linux指令行參數含空格,Linux的指令行參數風格

在Linux中,幾乎所有程式都會提供幾個指令行選項,有些程式提供的指令行參數多到咂舌!這樣做使得程式的運作非常靈活,而且程式的配置資訊可以由腳本指定,這對于作為管道或過濾器的程式尤其重要。有三種約定可以區分指令行選項和普通的參數:原始的Unix風格、GNU風格和X toolkit風格。

原始Unix指令行參數風格

原始的Unix風格指令行選項,是以連字元“-”開頭的單個字元。如果選項後面不帶參數,則被稱之為模式選項,模式選項是可以組合在一起使用的。例如,如果-a和-b是模式選項,那麼-ab或-ba就都正确,而且會啟用這兩個選項。如果選項有參數,這些參數要緊接在選項後面(是否以空格分隔可選)。

例如:ls -al和ls -la是一樣的效果(注意ll隻是ls這個指令帶參數的别名)。

Unix指令行參數風格,就是Linux的風格!

GNU風格

GNU風格則使用兩個連續的連字元“--”後接選項關鍵字(注意,不是單個字元)。這種風格是因為有好多程式過于複雜,導緻單個字元不夠用了而發展起來的一種治标不治本的方法。較原始的Unix風格更容易讓人了解,但作為我們這種非英語為母語的同胞們也經常輸入錯誤或記不住。GNU風格的選項不用空格分隔就不能組合使用。選項參數既可以用空格分隔也可以使用單個等号“=”來分隔。

GNU風格常見于編譯安裝各種開源軟體,比如APACHE,PHP等。

Unix風格和GNU風格也可以混合起來使用。

X toolkit風格

最讓人痛恨的恐怕應該是X toolkit風格了。它使用單連字元和選項關鍵字,并且由X toolkit進行解析。最要命的是,X toolkit先要過濾并處理某些特别的選項,比如-geometry和-display,然後再把過濾好的指令行傳遞給應用程式去解析。如果你不清楚它會過濾哪些選項,就會死活都找不出你的程式為什麼接收不到某些選項。是以,這種東西最好别碰它。

麥新傑還沒見過這樣的風格。

本文部分内容摘自《Linux就是這個範兒》,這是一本非常有趣的Linux如何讀物。