1. 程式人生 > >Linux程式設計 20 shell程式設計(shell指令碼建立,echo顯示資訊)

Linux程式設計 20 shell程式設計(shell指令碼建立,echo顯示資訊)

一概述

  前面19章裡已經掌握了linux系統和命令列的基礎知識,從本章開始繼續學習shell指令碼的基礎知識。在大量編輯shell指令碼前,先來學習下一些基本概念。

  1.1    使用多個命令    Shell可以讓多個命令串起來,一次執行完成,可以把它們放在同一行中,用分號隔開,如下所示:          上面就是一個簡單的指令碼了,用到了兩個bash shell命令,但每次執行之前,都必須在命令提示符下輸入整個命令。如果將命令組合成一個簡單的文字檔案,需要時執行這個文字檔案就行了。

  1.2    建立shell 指令碼檔案    將shell 命令放到文字檔案中,首先使用vim編輯器建立一個檔案,然後在檔案中寫入命令。下面使用vim test1新建一個檔案,按(i)鍵編輯指令碼,儲存檔案(:wq)退出。解說下這幾行:第一行 #! 會告訴shell,是使用的/bin/bash 路徑下的bash  shell來執行指令碼。第二行 #是用作註釋行,shell不會處理。第三四行是命令。      

    test1指令碼檔案建立好了,通過ls -l 命令會發現hsr使用者沒有執行許可權,如下圖所示:          試試下面執行test1新指令碼,如下圖提示:未找到命令....。這是因為bash shell 找不到你的指令碼檔案,有二個方法:一是前面講到過環境變數PATH,將指令碼複製到PATH目錄下,二是使用絕對路徑來執行指令碼。          檢視PATH的多個shell執行路徑。把test1 移到/usr/local/bin/test1下,如下圖提示:提示許可權不夠。關於分配許可權可以檢視17篇。          切換到root下,檔案移動成功,但執行還是許可權不夠。      
    再檢視到root使用者對/usr/local/bin/test1檔案的許可權,發現也沒有執行許可權。          給這個test1檔案賦三組使用者最大許可權 777,再執行test1指令碼成功了,最後再檢視下許可權,執行許可權也有了。          下面再使用絕對路徑來執行test1檔案指令碼,也成功了,如下圖所示:      

   1.3 指令碼中顯示資訊

     與很多控制檯一樣,需要輸出資訊提示使用者在做什麼,或怎麼做。在shell中使用echo命令,與c語言的print,c#的console等一樣的命令。下圖是新建的一個test2指令碼檔案內容。          下圖編輯儲存test2指令碼檔案後,可檔案許可權,使用絕對路徑輸出,顯示了echo列印的資訊。      

    如果想把檔案字串和命令輸出顯示在同一行中,可以使用echo -n引數,如下所示: