打開文本編輯器(可以使用 vi/vim 命令來創(chuàng)建文件),新建一個文件 test.sh,擴(kuò)展名為 sh(sh代表shell)们颜。輸入一些代碼厨姚,第一行一般是這樣:
#!/bin/bash
echo "Hello World !"
#!/bin/bash
和#!/bin/sh
的區(qū)別
#!/bin/sh
是指此腳本使用/bin/sh來解釋執(zhí)行衅澈,#!是特殊的表示符,其后面根的是此解釋此腳本的shell的路徑谬墙。腳本的內(nèi)容是由解釋器解釋的今布,我們可以用各種各樣的解釋器來寫對應(yīng)的腳本。
比如說/bin/csh腳本拭抬,/bin/perl腳本部默,/bin/awk腳本,/bin/sed腳本造虎,甚至/bin/echo等等傅蹂。
GNU/Linux操作系統(tǒng)中的/bin/sh本是bash (Bourne-Again Shell) 的符號鏈接,但鑒于bash過于復(fù)雜累奈,有人把bash從NetBSD移植到Linux并更名為dash (Debian Almquist Shell)贬派,并建議將/bin/sh指向它,以獲得更快的腳本執(zhí)行速度澎媒。Dash Shell 比Bash Shell小的多搞乏,符合POSIX標(biāo)準(zhǔn)。
Ubuntu繼承了Debian戒努,所以從Ubuntu 6.10開始默認(rèn)是Dash Shell请敦。
應(yīng)該說镐躲,/bin/sh與/bin/bash雖然大體上沒什么區(qū)別,但仍存在不同的標(biāo)準(zhǔn)侍筛。標(biāo)記為#!/bin/sh的腳本不應(yīng)使用任何POSIX沒有規(guī)定的特性 (如let等命令, 但#!/bin/bash可以)萤皂。Debian曾經(jīng)采用/bin/bash更改/bin/dash,目的使用更少的磁盤空間匣椰、提供較少的功能裆熙、獲取更快的速度。但是后來經(jīng)過shell腳本測試存在運(yùn)行問題禽笑。因?yàn)樵仍赽ash shell下可以運(yùn)行的shell script (shell 腳本)入录,在/bin/sh下還是會出現(xiàn)一些意想不到的問題,不是100%的兼用佳镜。