第一個Shell指令碼

來源:互聯網
上載者:User

標籤:

http://c.biancheng.net/cpp/view/6998.html

開啟文字編輯器,建立一個檔案,副檔名為sh(sh代表shell),副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。

輸入一些代碼:

  1. #!/bin/bash
  2. echo "Hello World !"

“#!” 是一個約定的標記,它告訴系統這個指令碼需要什麼解譯器來執行,即使用哪一種Shell。echo命令用於向視窗輸出文本。

運行Shell指令碼有兩種方法。

作為可執行程式

將上面的代碼儲存為test.sh,並 cd 到相應目錄:

chmod +x ./test.sh  #使指令碼具有執行許可權./test.sh  #執行指令碼

注意,一定要寫成./test.sh,而不是test.sh。運行其它二進位的程式也一樣,直接寫test.sh,linux系統會去PATH裡尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH裡,你的目前的目錄通常不在PATH裡,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在目前的目錄找。

通過這種方式運行bash指令碼,第一行一定要寫對,好讓系統尋找到正確的解譯器。

這裡的"系統",其實就是shell這個應用程式(想象一下Windows Explorer),但我故意寫成系統,是方便理解,既然這個系統就是指shell,那麼一個使用/bin/sh作為解譯器的指令碼是不是可以省去第一行呢?是的。

作為解譯器參數

這種運行方式是,直接運行解譯器,其參數就是shell指令碼的檔案名稱,如:

/bin/sh test.sh/bin/php test.php

這種方式啟動並執行指令碼,不需要在第一行指定解譯器資訊,寫了也沒用。

再看一個例子。下面的指令碼使用 read 命令從 stdin 擷取輸入並賦值給 PERSON 變數,最後在 stdout 上輸出:

  1. #!/bin/bash
  2. # Author : mozhiyan
  3. # Copyright (c) http://see.xidian.edu.cn/cpp/linux/
  4. # Script follows here:
  5. echo "What is your name?"
  6. read PERSON
  7. echo "Hello, $PERSON"

運行指令碼:

chmod +x ./test.sh$./test.shWhat is your name?mozhiyanHello, mozhiyan$

第一個Shell指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.