學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux shell運行命令詳解

linux shell運行命令詳解

時間: 佳洲1085 分享

linux shell運行命令詳解

  在Linux下,如果你需要運行shell程序,那么應(yīng)該使用那個命令呢?下面由學(xué)習(xí)啦小編為大家整理了linux shell運行命令的相關(guān)知識,希望對大家有幫助!

  linux shell運行命令

  說明:用戶可以用任何編輯程序來編寫Shell程序。因為Shell程序是解釋執(zhí)行的,所以不需要編譯成目的程序。按照Shell編程的慣例,以bash為例,程序的第一行一般為“#!/bin/bash”,其中 # 表示該行是注釋,嘆號 ! 告訴Shell運行嘆號之后的命令并用文檔的其余部分作為輸入,也就是運行/bin/bash并讓/bin/bash去執(zhí)行Shell程序的內(nèi)容。

  執(zhí)行Shell程序的方法有3種。

  1.sh Shell程序文件名

  這種方法的命令格式為:

  bash Shell程序文件名

  這實際上是調(diào)用一個新的bash命令解釋程序,而把Shell程序文件名作為參數(shù)傳遞給它。新啟動的Shell將去讀指定的文件,可執(zhí)行文件中列出的命令,當所有的命令都執(zhí)行完后結(jié)束。該方法的優(yōu)點是可以利用Shell調(diào)試功能。

  2.sh

  格式為:

  bash< Shell程序名

  這種方式就是利用輸入重定向,使Shell命令解釋程序的輸入取自指定的程序文件。

  3.用chmod命令使Shell程序成為可執(zhí)行的

  一個文件能否運行取決于該文檔的內(nèi)容本身可執(zhí)行且該文件具有執(zhí)行權(quán)。對于Shell程序,當用編輯器生成一個文件時,系統(tǒng)賦予的許可權(quán)都是644(rw-r-r--),因此,當用戶需要運行這個文件時,只需要直接鍵入文件名即可。

  在這3種運行Shell程序的方法中,最好按下面的方式選擇:當剛創(chuàng)建一個Shell程序,對它的正確性還沒有把握時,應(yīng)當使用第一種方式進行 調(diào)試。當一個Shell程序已經(jīng)調(diào)試好時,應(yīng)使用第三種方式把它固定下來,以后只要鍵入相應(yīng)的文件名即可,并可被另一個程序所調(diào)用。

  4.bash程序的調(diào)試

  在編程過程中難免會出錯,有的時候,調(diào)試程序比編寫程序花費的時間還要多,Shell程序同樣如此。

  Shell程序的調(diào)試主要是利用bash命令解釋程序的選擇項。調(diào)用bash的形式是:

  bash -選擇項Shell程序文件名

  幾個常用的選擇項是:

  -e 如果一個命令失敗就立即退出。

  -n 讀入命令但是不執(zhí)行它們。

  -u 置換時把未設(shè)置的變量看做出錯。

  -v 當讀入Shell輸入行時把它們顯示出來。

  -x 執(zhí)行命令時把命令和它們的參數(shù)顯示出來。

  上面的所有選項也可以在Shell程序內(nèi)部用“set -選擇項”的形式引用,而“set +選擇項”則將禁止該選擇項起作用。如果只想對程序的某一部分使用某些選擇項時,則可以將該部分用上面兩個語句包圍起來。

  (1)未置變量退出和立即退出

  未置變量退出特性允許用戶對所有變量進行檢查,如果引用了一個未賦值的變量就終止Shell程序的執(zhí)行。Shell通常允許未置變量的使用,在 這種情況下,變量的值為空。如果設(shè)置了未置變量退出選擇項,則一旦使用了未置變量就顯示錯誤信息,并終止程序的運行。未置變量退出選擇項為-u。

  當Shell運行時,若遇到不存在或不可執(zhí)行的命令、重定向失敗或命令非正常結(jié)束等情況時,如果未經(jīng)重新定向,該出錯信息會顯示在終端屏幕上, 而Shell程序仍將繼續(xù)執(zhí)行。要想在錯誤發(fā)生時迫使Shell程序立即結(jié)束,可以使用-e選項將Shell程序的執(zhí)行立即終止。

  (2)Shell程序的跟蹤

  調(diào)試Shell程序的主要方法是利用Shell命令解釋程序的-v或-x選項來跟蹤程序的執(zhí)行。-v選擇項使Shell在執(zhí)行程序的過程中,把 它讀入的每一個命令行都顯示出來,而-x選擇項使Shell在執(zhí)行程序的過程中把它執(zhí)行的每一個命令在行首用一個+加上命令名顯示出來。并把每一個變量和 該變量所取的值也顯示出來。因此,它們的主要區(qū)別在于:在執(zhí)行命令行之前無-v,則顯示出命令行的原始內(nèi)容,而有-v時則顯示出經(jīng)過替換后的命令行的內(nèi) 容。

  除了使用Shell的-v和-x選擇項以外,還可以在Shell程序內(nèi)部采取一些輔助調(diào)試的措施。例如,可以在Shell程序的一些關(guān)鍵地方使 用echo命令把必要的信息顯示出來,它的作用相當于C語言中的printf語句,這樣就可以知道程序運行到什么地方及程序目前的狀態(tài)。

3575850