日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell之什么时候使用shell以及最简单的shell程序

發(fā)布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell之什么时候使用shell以及最简单的shell程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
因為Shell似乎是各UNIX系統(tǒng)之間通用的功能,并且經(jīng)過了POSIX的標(biāo)準(zhǔn)化。因此,Shell腳本只要“用心寫”一次,即可應(yīng)用到很多系統(tǒng)上。因此,之所以要使用Shell腳本是基于:
  • 簡單性:Shell是一個高級語言;通過它,你可以簡潔地表達(dá)復(fù)雜的操作。
  • 可移植性:使用POSIX所定義的功能,可以做到腳本無須修改就可在不同的系統(tǒng)上執(zhí)行。
  • 開發(fā)容易:可以在短時間內(nèi)完成一個功能強大又妤用的腳本。

但是,考慮到Shell腳本的命令限制和效率問題,下列情況一般不使用Shell:
  • 資源密集型的任務(wù),尤其在需要考慮效率時(比如,排序,hash等等)。
  • 需要處理大任務(wù)的數(shù)學(xué)操作,尤其是浮點運算,精確運算,或者復(fù)雜的算術(shù)運算(這種情況一般使用C++或FORTRAN 來處理)。
  • 有跨平臺(操作系統(tǒng))移植需求(一般使用C 或Java)。
  • 復(fù)雜的應(yīng)用,在必須使用結(jié)構(gòu)化編程的時候(需要變量的類型檢查,函數(shù)原型,等等)。
  • 對于影響系統(tǒng)全局性的關(guān)鍵任務(wù)應(yīng)用。
  • 對于安全有很高要求的任務(wù),比如你需要一個健壯的系統(tǒng)來防止入侵、破解、惡意破壞等等。
  • 項目由連串的依賴的各個部分組成。
  • 需要大規(guī)模的文件操作。
  • 需要多維數(shù)組的支持。
  • 需要數(shù)據(jù)結(jié)構(gòu)的支持,比如鏈表或數(shù)等數(shù)據(jù)結(jié)構(gòu)。
  • 需要產(chǎn)生或操作圖形化界面 GUI。
  • 需要直接操作系統(tǒng)硬件。
  • 需要 I/O 或socket 接口。
  • 需要使用庫或者遺留下來的老代碼的接口。
  • 私人的、閉源的應(yīng)用(shell 腳本把代碼就放在文本文件中,全世界都能看到)。

  • 如果你的應(yīng)用符合上邊的任意一條,那么就考慮一下更強大的語言吧——或許是Perl、Tcl、Python、Ruby——或者是更高層次的編譯語言比如C/C++,或者是Java。即使如此,你會發(fā)現(xiàn),使用shell來原型開發(fā)你的應(yīng)用,在開發(fā)步驟中也是非常有用的。



    打開文本編輯器,新建一個文件,擴(kuò)展名為sh(sh代表shell),擴(kuò)展名并不影響腳本執(zhí)行,見名知意就好,如果你用php寫shell 腳本,擴(kuò)展名就用php好了。

    輸入一些代碼:

  • #!/bin/bash
  • echo "Hello World !"
  • “#!” 是一個約定的標(biāo)記,它告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行,即使用哪一種Shell。echo命令用于向窗口輸出文本。

    運行Shell腳本有兩種方法。

    作為可執(zhí)行程序

    將上面的代碼保存為test.sh,并 cd 到相應(yīng)目錄: chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限 ./test.sh #執(zhí)行腳本 注意,一定要寫成./test.sh,而不是test.sh。 運行其它二進(jìn)制的程序也一樣,直接寫test.sh,linux系統(tǒng)會去PATH里尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的當(dāng)前目錄通常不在PATH里,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統(tǒng)說,就在當(dāng)前目錄找。

    通過這種方式運行bash腳本,第一行一定要寫對,好讓系統(tǒng)查找到正確的解釋器。

    這里的"系統(tǒng)",其實就是shell這個應(yīng)用程序(想象一下Windows Explorer),但我故意寫成系統(tǒng),是方便理解,既然這個系統(tǒng)就是指shell,那么一個使用/bin/sh作為解釋器的腳本是不是可以省去第一行呢?是的。

    作為解釋器參數(shù)

    這種運行方式是,直接運行解釋器,其參數(shù)就是shell腳本的文件名,如: /bin/sh test.sh /bin/php test.php 這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。

    再看一個例子。下面的腳本使用? read ?命令從 stdin 獲取輸入并賦值給?PERSON 變量,最后在 stdout 上輸出:
  • #!/bin/bash
  • # Author : mozhiyan
  • # Copyright (c) http://see.xidian.edu.cn/cpp/linux/
  • # Script follows here:
  • echo "What is your name?"
  • read PERSON
  • echo "Hello, $PERSON"
  • 運行腳本: chmod +x ./test.sh $./test.sh What is your name? mozhiyan Hello, mozhiyan $

    總結(jié)

    以上是生活随笔為你收集整理的shell之什么时候使用shell以及最简单的shell程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。