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