1. 程式人生 > >shell指令碼學習第一彈

shell指令碼學習第一彈

shell指令碼學習第一彈


作為一個linux程式設計師,不會shell的指令碼的編寫,可是不合格的呀!!!
今天,我們一起來看看shell指令碼的編寫:


別的先不說,先來一個入門級的案例:

 1 #!/bin/bash
  2 #當前路徑
  3 pwd
  4 #列印hello
  5 echo "hello"

我們執行

chmod +x hello.sh 
./hello.sh

結果:

/home/shell
hello

能打印出這個,說明入門了。


我們來看看上面這個指令碼,首先,我就有幾個疑問?

  • 1 為什麼要用#!/bin/bash
  • 2.執行的過程是什麼?

簡答:

  1. 我們從程式執行的角度來說的話,如果一個程式沒有執行許可權的話,機器就會報錯“許可權不夠”這類的錯誤;換個角度來說的話,不管什麼程式執行,都要判斷這個程式是否有對應的許可權,如果沒有許可權,一般是沒有辦法執行的。
    2.在linux系統中,個檔案加許可權的方式是:chmod ,+x表示給程式叫上可執行的許可權。shell收到我們執行的命令後,會呼叫linux核心命令來新建一個程序來處理我們的命令。像我們C/C++編譯完都是二進位制的檔案,linux核心知道怎麼去執行它,但是我們的.sh的指令碼檔案的話,它是一個文字檔案,核心不知道怎麼去執行,所以就該我們的“#!/bin/bash”出場了,這個我更願意叫他直譯器。當命令列發現“#!”的時候,它就會在這個後面找到直譯器的路徑,當然,一個機器可能有幾個直譯器,我們可以用命令“whereis shell”進行檢視!到此為止,我們就知道為什麼要用“#!/bin/bash”了!!!!!