(1) Shell 指令碼簡介

客串演出_mirror發表於2017-07-02

Shell, 是一個用C 語言編寫的程式, 它是使用者操作Linux的橋樑, 也就是平時我們連線Linux 的所看到的命令列視窗. 平時我們輸入的Linux 命令都是在Shell 程式中完成的.
Shell 指令碼, 筆者認為Shell 指令碼就是一組在Shell 程式中能執行的命令按順序執行的集合.筆者通常使用shell不會太複雜的操作, 因為shell 指令碼對於實現一些比較複雜的邏輯比較麻煩, 對於比較複雜的邏輯可以使用perl 或者 python 等其他指令碼語言實現.

在Shell 程式視窗中, 通常我們只會輸入簡單的一行兩行命令, 應該不會有人會直接在Shell 視窗中進行迴圈等複雜操作的吧, 而且輸入的命令重用性不太好, 當想重複執行時, 還需要重新敲. 而Shell 指令碼就可以很方便的解決這些問題.Shell 指令碼能重複執行, 能寫比較複雜的邏輯. 通常業界所說的shell 程式設計都指的是Shell 指令碼程式設計.

1. shell 分類

Linux 的Shell 有很多種, 常見的有:

  • bash: Bourne Shell
  • sh: Bourne Again Shell
  • csh: C Shell
  • ksh: K Shell

  • bash 是Linux 下的標準shell , 通常說的shell 也就是bash

2. Shell 入門程式

通常一說到入門程式, 肯定是輸出一個Hello,world!, 當然了Shell 指令碼也不例外.

2.1. 建立一個helloworld 指令碼

使用vim 等文字編輯器, 建立一個helloword.sh 指令碼,shell 指令碼通常以字尾名.sh 結尾:

  • # 號表示註釋, 通常將# 號放在行首
  • echo 為輸出行命令, 會輸出一行.
  • shell 指令碼不以分號為語句結束
#!/bin/bash

# 輸出hello,world
echo "hello,world!"

2.2 修改指令碼許可權

在Linux 中預設新建檔案是不具備可執行許可權的, 而指令碼要想執行需要可執行許可權. 所以首先需要為指令碼賦予可執行許可權.通常我們會為指令碼賦予755 許可權, 755 許可權含義:

  • 使用者: 可讀, 可寫, 可執行
  • 使用者組: 可讀, 可執行
  • 其他人: 可讀, 可執行
[admin@localhost shell]$ chmod 755 helloworld.sh
[admin@localhost shell]$ ll helloworld.sh
-rwxr-xr-x. 1 admin admin 33 Jun 21 10:12 helloworld.sh
[admin@localhost shell]$

2.3 執行指令碼

指令碼執行時, 必須使用絕對路徑,或者相對路徑, 只輸入指令碼名稱是不能執行的

* 方式一: *

[admin@localhost shell]$ ls
helloword.sh
[admin@localhost shell]$ ./helloword.sh
hello,world!
[admin@localhost shell]$

* 方式二: *

[admin@localhost ~]$ ls
shell
[admin@localhost ~]$ /home/admin/shell/helloword.sh
hello,world!
[admin@localhost ~]$

* 錯誤方式: *

[admin@localhost shell]$ ls
helloword.sh
[admin@localhost shell]$ helloword.sh
-bash: helloword.sh: command not found
[admin@localhost shell]$

相關文章