日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell脚本之一 Shell脚本简介

發布時間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本之一 Shell脚本简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是shell?

我們平時所說的 Shell 可以理解為 Linux 系統提供給用戶的使用界面。Shell 為用戶提供了輸入命令和參數并可得到命令執行結果的環境。當一個用戶登錄 Linux 之后,系統初始化程序 init 就根據 /etc/passwd 文件中的設定,為每個用戶運行一個被稱為 Shell(外殼)的程序。

確切地說,Shell 是一個命令行解釋器,它為用戶提供了一個向 Linux 內核發送請求以便運行程序的界面系統級程序,用戶可以用 Shell 來啟動、掛起、停止甚至編寫一些程序。


二、什么是shell腳本?

與一般命令相比,Shell 除了是一個命令行解釋器,同時還是一門功能強大的編程語言,易編寫,易調試,靈活性較強。作為一種命令級語言,Shell 是解釋性的,組合功能很強,與操作系統有密切的關系,可以在 Shell 腳本中直接使用系統命令。大多數 Linux 系統的啟動相關文件(一般在 /etc/rc.d 目錄下)都是使用 Shell 腳本編寫的。

同傳統的編程語言一樣,Shell 提供了很多特性,這些特性可以使 Shell 腳本編程更為有用,如數據變量、參數傳遞、判斷、流程控制、數據輸入和輸出、子程序及中斷處理等。


三、Shell的分類

Shell 編程跟 java、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。Linux 的 Shell 種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)

    是UNIX最初使用的 shell,而且在每種 UNIX 上都可以使用。Bourne Shell 在 shell 編程方面相當優秀,但在處理與用戶的交互方面做得不如其他幾種 shell。

  • Bourne Again Shell(/bin/bash)

    Linux默認的腳本種類,它是 Bourne Shell 的擴展。 與 Bourne Shell 完全兼容,并且在 Bourne Shell 的基礎上增加了很多特性,可以提供命令補全,命令編輯和命令歷史等功能。

  • C Shell(/usr/bin/csh)

    是一種比 Bourne Shell更適合的變種 Shell,它的語法與 C 語言很相似。

  • K Shell(/usr/bin/ksh)

    集合了 C Shell 和 Bourne Shell 的優點并且和 Bourne Shell 完全兼容。

這里演示用的是 Bash,也就是 Bourne Again Shell,由于易用和免費,Bash 在日常工作中被廣泛使用。同時,Bash 也是大多數Linux 系統默認的 Shell。

在一般情況下,人們并不區分 Bourne Shell 和 Bourne Again Shell,所以,#!/bin/sh,它同樣也可以改為 #!/bin/bash


我們可以通過 /etc/shells 文件來査詢 Linux 支持的 Shell。命令如下:

$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh

用戶信息文件 /etc/passwd 的最后一列就是這個用戶的登錄 Shell。命令如下:

$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x: 1:1 :bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin ...

可以看到,root 用戶和其他可以登錄系統的普通用戶的登錄 Shell 都是 /bin/bash,也就是 Linux 的標準 Shell,所以這些用戶登錄之后可以執行權限允許范圍內的所有命令。不過,所有的系統用戶(偽用戶)因為登錄 Shell 是 /sbin/ndogin,所以不能登錄系統。


四、第一個shell腳本

打開文本編輯器(可以使用 vi/vim 命令來創建文件),新建一個文件 test.sh,擴展名為 sh(sh代表shell),內容如下所示:

#!/bin/bash echo "Hello World !"

#! 告訴系統其后路徑所指定的程序即是解釋此腳本文件的 Shell 程序。運行該腳本,打印命令 echo 會在屏幕上打印出后面的字符串。


五、運行Shell腳本的兩種方法

1、作為可執行程序

第一種運行方式是,先使前面的test.sh腳本具有執行權限,然后像運行其它二進制程序一樣執行腳本即可:

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 告訴系統說,就在當前目錄找。


2、作為解釋器參數

第二種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:

/bin/sh test.sh

這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。


六、Shell注釋

1、單行注釋

# 開頭的行就是注釋,會被解釋器忽略,像這樣

#-------------------------------------------- # 這是一個注釋 # author:feng #-------------------------------------------- ##### 用戶配置區 開始 ##### # # 這里可以添加腳本描述信息 # ##### 用戶配置區 結束 #####

如果在開發過程中,遇到大段的代碼需要臨時注釋起來,過一會兒又取消注釋,怎么辦呢?

每一行加個#符號太費力了,可以把這一段要注釋的代碼用一對花括號括起來,定義成一個函數,不調用這個函數,就不會執行這塊代碼,達到了和注釋一樣的效果。


2、多行注釋

多行注釋還可以使用以下格式:

:<<EOF 注釋內容... 注釋內容... 注釋內容... EOF

EOF 也可以使用其他符號:

:<<' 注釋內容... 注釋內容... 注釋內容... ':<<! 注釋內容... 注釋內容... 注釋內容... !


參考:

Shell 教程

Shell腳本是什么


轉載于:https://www.cnblogs.com/linuxAndMcu/p/11119374.html

總結

以上是生活随笔為你收集整理的Shell脚本之一 Shell脚本简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。