我的第乙個shell,掛在u 盤

2021-08-20 03:11:58 字數 1556 閱讀 2081

以前一直用 mount    /dev/sdax     /掛載目錄

感覺每次都要執行敲如此多的**,   就想著簡化這個過程,   最終通過shell 指令碼實現了好記的guanzai 檔案。申明了檔案所外

目錄   新增進環境變數   export = 。。。

一、意思

#!/bin/sh是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面根的是此解釋此指令碼的shell的路徑。

其實第一句的#!是對指令碼的直譯器程式路徑,指令碼的內容是由直譯器解釋的,我們可以用各種各樣的直譯器來寫對應的指令碼。

比如說/bin/csh指令碼,/bin/perl指令碼,/bin/awk指令碼,/bin/sed指令碼,甚至/bin/echo等等。

#!/bin/bash同理。

二、區別

gnu/linux作業系統中的/bin/sh本是bash (bourne-again shell)的符號鏈結,但鑑於bash過於複雜,有人把bash從netbsd移植到linux並更名為dash (debian almquist shell),並建議將/bin/sh指向它,以獲得更快的指令碼執行速度。dash shell 比bash shell小的多,符合posix標準。

ubuntu繼承了debian,所以從ubuntu 6.10開始預設是dash shell。

應該說,/bin/sh/bin/bash雖然大體上沒什麼區別,但仍存在不同的標準。標記為#!/bin/sh的指令碼不應使用任何posix沒有規定的特性 (如let等命令, 但#!/bin/bash可以)。debian曾經採用/bin/bash更改/bin/dash,目的使用更少的磁碟空間、提供較少的功能、獲取更快的速度。但是後來經過shell指令碼測試存在執行問題。因為原先在bash shell下可以執行的shell script (shell 指令碼),在/bin/sh下還是會出現一些意想不到的問題,不是100%的兼用。

上面可以這樣理解,使用man sh命令和man bash命令去觀察,可以發現sh本身就是dash,也就更好的說明整合debian系統之後的更改。

以上參考:

我的第乙個shell指令碼

今天去某公司面試,做了一道這樣的筆試題。題目 假如日誌檔案有5種型別 error,debug,info,exception,ver 怎樣寫乙個指令碼讓他們歸類統計錯誤型別的次數?error abd debug ggsgfggfgfggf info 13445jflkjfllalss 鑑於昨天只看了一...

第乙個Shell指令碼

開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...

第乙個shell指令碼

首先宣告,我的linux系統是centeros 64bit的 開啟終端,cd mnt hgfs share 進入以下目錄 mkdir shellfolder 建立資料夾shellfolder touch runstusys.sh 建立乙個shell程式 vi runstusys.sh 進行編輯,並輸...