溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

源碼時代Java干貨分享|Shell腳本編程學習入門,只需兩個步驟,包你學會!

發(fā)布時間:2020-06-02 09:03:53 來源:網(wǎng)絡(luò) 閱讀:295 作者:wx5d51393e4bd0e 欄目:web開發(fā)

最近在學習shell編程,對于shell腳本中第一行用于指定腳本解釋器的代碼到底有沒有起到指定解釋器的作用感到疑惑,如:#!/bin/bash

在網(wǎng)上查找了不少資料,發(fā)現(xiàn)網(wǎng)上竟然也分了兩大派,一些人認為#!/bin/bash沒有起到作用,因為在shell腳本中#表示是注釋的意思,而另一些人則認為是起作用的,但是沒有給出令人信服的理由,沒辦法,我只好自己動手做測試了。
1.首先我先創(chuàng)建了一個名為test.sh的shell文件,里面內(nèi)容如下

源碼時代Java干貨分享|Shell腳本編程學習入門,只需兩個步驟,包你學會!

這個腳本文件中的第二行代碼使用了bash語法,不支持POSIX規(guī)范,所以如果這個文件是以bash解釋器運行的話,是可以正常運行,而如果換為sh解釋器的話,便會報語法錯誤

修改test.sh權(quán)限

源碼時代Java干貨分享|Shell腳本編程學習入門,只需兩個步驟,包你學會!

然后直接執(zhí)行test.sh

源碼時代Java干貨分享|Shell腳本編程學習入門,只需兩個步驟,包你學會!

可以看到,腳本成功運行,沒有報錯,然后我將第一行修改為#!/bin/sh

源碼時代Java干貨分享|Shell腳本編程學習入門,只需兩個步驟,包你學會!

2.然后運行
源碼時代Java干貨分享|Shell腳本編程學習入門,只需兩個步驟,包你學會!

這個時候便報了一個語法錯誤
由此可以得出結(jié)論,shell腳本的第一行指定腳本解釋器是確實起作用的,不過值得注意的是,當我們使用指定解釋器運行腳本的時候,我們腳本文件中的第一行會失效,比如通過bash+文件名運行腳本的方式,這樣即便我在文件中指定是sh解釋器,結(jié)果依然會以bash解釋器運行的。
(本文由源碼時代技術(shù)老師原創(chuàng)撰寫,轉(zhuǎn)載請注明出處)

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI