第一個(gè)shell腳本

第一個(gè)shell腳本

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

1、關(guān)于#!

在腳本開頭的 sha-bang (#!) 是告訴系統(tǒng)這個(gè)文件是由特定命令解釋器解釋的一組命令。 那個(gè) #! 實(shí)際上是兩個(gè)字節(jié)的 魔數(shù), 魔數(shù)是指定文件類型的特殊記號(hào),在此是表示這是一個(gè)可執(zhí)行的shell腳本(鍵入 man magic可了解更多的信息)。緊跟著#!的是一個(gè)路徑名.這個(gè)路徑名是解釋這個(gè)腳本內(nèi)命令的命令解釋器程序的路徑:可能是一個(gè)shell,也可能是一個(gè)編程語(yǔ)言或者是一個(gè)軟件包程序。這個(gè)命令解釋器能執(zhí)行腳本內(nèi)的命令語(yǔ)句。它從腳本開頭(即從#!所在行的下一行)起執(zhí)行,但是忽略注釋行。

#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f

上面每一個(gè)腳本頭行都是不同的命令解釋器,如果第一行是/bin/sh, 那就是默認(rèn)的Shell(Linux系統(tǒng)中bash是默認(rèn)的shell),否則的話就是其他的解釋器.如果使用#!/bin/sh(因?yàn)榇蠖嗖煌纳虡I(yè)UNIX都使用Bourne shell為默認(rèn)shell)可以使腳本能夠移植到非Linux的機(jī)器上,雖然這樣做你將不能使用Bash許多特有的屬性。但這樣做的腳本遵循 POSIX sh標(biāo)準(zhǔn).

值得注意的是,在"#!"后面提供的路徑必須是正確的,否則你運(yùn)行腳本只會(huì)收到通常像"Command not found"那樣的錯(cuò)誤信息。

如果腳本程序只是由一組普通的系統(tǒng)命令而沒(méi)有使用Shell內(nèi)置命令的話#!將被忽略。再次提醒使用#!/bin/sh將調(diào)用默認(rèn)的命令解釋器,這在Linux系統(tǒng)上是/bin/bash.

2、關(guān)于echo

echo命令是一個(gè)系統(tǒng)的內(nèi)建命令(builtin)。用于I/O操作。在這里我們利用echo命令來(lái)輸出一行字符串。

3、關(guān)于運(yùn)行方式

接著嘗試運(yùn)行這個(gè)腳本:

Hello world!

可以使用的方法有(假設(shè)文件的名字為hello.sh):

1.bash hello.sh

直接使用bash腳本運(yùn)行hello.sh 這個(gè)腳本

2.chmod +x hello.sh

./hello.sh

給這個(gè)腳本添加運(yùn)行權(quán)限之后直接調(diào)用。運(yùn)行時(shí)腳本會(huì)根據(jù)#!后面的內(nèi)容確定運(yùn)行腳本的程序。即使用/bin/bash 。

與此類似的,我們還可以將腳本放入系統(tǒng)環(huán)境變量的search path里面。比如在mac下的/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin之類的目錄下。這樣就能夠直接用hello.sh這種方式來(lái)運(yùn)行這個(gè)腳本了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,744評(píng)論 0 5
  • 打開文本編輯器(可以使用 vi/vim 命令來(lái)創(chuàng)建文件),新建一個(gè)文件 test.sh,擴(kuò)展名為 sh(sh代表s...
    孤月環(huán)舟閱讀 284評(píng)論 0 0
  • 第 2 章 SHELL 基礎(chǔ)知識(shí)2.1 shell腳本我們?cè)谏厦婧?jiǎn)單介紹了一下什么是shell腳本,現(xiàn)在我們來(lái)進(jìn)一...
    LiWei_9e4b閱讀 1,654評(píng)論 0 0
  • 打開文本編輯器,新建一個(gè)文件,擴(kuò)展名為sh(sh代表shell),擴(kuò)展名并不影響腳本執(zhí)行,見名知意就好,如果你用p...
    Viking_Den閱讀 579評(píng)論 0 2
  • 創(chuàng)建腳本文件$ vim test.sh新建一個(gè)名為test擴(kuò)展名為sh(sh代表shell),擴(kuò)展名不影響腳本執(zhí)行...
    WorldPeace_hp閱讀 343評(píng)論 1 1

友情鏈接更多精彩內(nèi)容