程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用C#給Linux寫Shell腳本,

使用C#給Linux寫Shell腳本,

編輯:C#入門知識

使用C#給Linux寫Shell腳本,


    在這個逼格決定人格,鄙視鏈盛行的年頭,尤其是咱們IT界,請問您今天鄙視與被鄙視的次數分別是多少?如果手中沒有一點壓箱的本事,那就只有看的份了。今天我們也要提升下自己的格調,學習些腦洞大開的東西,學完之後跑去群子了威嚇其他群友,不就是個玩嘛,走著~~!

    說起Linux中的腳本,毋庸置疑,用得最多的肯定是Shell腳本,其他的還有Python、Ruby等,估計根本沒有人會想到其實C#也可以。說起C#,那可是尚方寶劍版存在,它上可寫操作系統(CosmosOS、SharpOS等)下可寫應用系統,桌面程序、網站程序、嵌入式程序、其他程序一網打盡,寫腳本?自然也是順利成章的事情了。
    好的,還是進入到本文的正式環境,本文中,我們將介紹:
      (1)、C# Shell的簡介。
      (2)、編寫我們第一個C# Shell腳本。
      (3)、如何引入程序集。


    一、C# Shell的簡介
    Shell,中文意為“殼”,它是一個提供用戶與操作系統內核之間通訊的翻譯器,常見的有有圖形Shell和命令行Shell,它也是我們除安裝操作系統外Linux首先學習的重點,我敢保證,所有的有使用過Linux的讀者都會知道它。
    C# Shell,也正如它的名稱一樣,它是一個Shell,所使用的命令行語言為C#。而事實上,它的原型是Mono項目中Tool中所提供的一個工具,它的本名為“C#REPL”,因此想要使用它,我們的Linux中必須已經安裝了Mono,也即是有Linux.NET的環境。
    關於Linux.NET的環境搭建,我不想老生常談,仍然不懂的讀者,請移步到《Linux.NET 學習手記》系列中。所有已經搭建好Linux.NET環境的機器中,都可以通過執行命令“/bin/env csharp”執行C# Shell命令解析器。系統控制台這時會進入到C# Shell終端(有點像Telnet連接的樣子)。

    然後我們就可以在裡面鍵入各種各樣的命令,想要退出的時候執行“quit”即可退出回到Linux命令終端。

 

    二、編寫第一個C# Shell腳本    

    對於平時有些Linux Shell的讀者來說,經過上一節的介紹,大概也已經知道這是怎麼回事了。對於不懂Shell的讀者,也不要緊,我們本節就是教大家如何編寫一個C# Shell。先給各位展示一下一個“標准”的Shell是什麼格式的。

    這裡是一個常見的Bash Shell腳本,作用就是輸出十遍的“小蝶驚鴻大法好”。一個普通的Linux Shell腳本由主要由兩個部分所構成,第一就是它的解析器聲明,也就是頭部的第一行,它用來指明這個腳本是使用哪一款的Shell解析器進行解析。由於不同的Shell解析器之間各自有自己的Shell命令行,因此讓計算機能夠選擇出正確的Shell解析器非常重要。另外就是Shel腳本的主程序體,由於Shell腳本是通過解析器執行,因此它的執行方式是從本文第一行開始解析執行,並按照文本的行來逐行解析執行,因此原則上我們是可以像“流水賬”一樣寫程序(不考慮可維護性的話)。

    下面我們也按照這種“標准格式”也寫一個C# Shell。

    首先我們先新建一個文件,後綴名什麼的無所謂了,Linux中是沒有後綴名的這個概念的,然後打開並填寫上解析器的位置,也即是第一行。

    然後我們就可以在裡面跟平時用C#一樣寫上我們的代碼了(中文注意編碼)。

    保存後,在Linux添加執行權限,然後運行它(本腳本文件名字為demo.cs)。

    醬醬~!有趣的事情發生了。

 

    三、如何引入程序集

    現在我們已經證明了C# Shell腳本的可行性,也讓各位讀者簡單學習了如何編寫C# Shell腳本,已經具備了初步的使用價值,但由於解析器默認指揮引入“System”裡面的東西,因此暫時只能做一些很簡單的東西。

    與其他“單薄”的語言不同,C#擁有極其豐富而強大的類庫,它們才是C#中的大部隊,在各個時刻各種場合中,我們都需要使用到它們。現在就讓我們來學習如何調用它們。   

    在Linux.NET中,程序集主要來自於兩個地方,Mono自帶的基礎庫以及我們手動引入的第三方類庫,對於它們,我們都會分別進行講解。

    先講解基礎庫,Mono自帶的基礎庫可在Mono編譯安裝的目錄中找到它們,想要引用它們,我們只需直接在腳本中使用“Using 命名空間”即可加入它們,其效果如下:

    程序集能夠自動被引入並正常使用。而對於第三方類庫,由於它並沒有默認加入到引用中,因此  我們需要手動的將這個程序集Load進來。要Load第三方程序也比較容易,只需使用“LoadAssembly("程序集的物理位置【不要dll後綴】")”然後再使用“Using 命名空間”的方式即可。

    Clear,又可以繼續玩了。


    好的,本篇內容又差不多了,寫本文的目的僅僅是提供Shell腳本的多一重選擇,並不是要取代Bash、Python之類的經典,各位讀者可以在自己的機器上玩玩。有疑問的讀者或者對Linux.NET感興趣的讀者可以關注我微博或者到“OWIN【Open Web Interface for .NET】)群”聯系我(Q群號:373470340)。噢,對了,還有關於C# Shell與Bash Shell互調的問題,我還沒有找到好的方法,各位讀者有啥靈感的也可以聯系我,謝謝。

    個人博客文章對應地址:http://jhonge.net/Home/Single2/1802

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved