`.sh` 和 `.csh` 之間的區別

`.sh` 和 `.csh` 之間的區別

我剛剛安裝了 Intel Parallel Studio,現在想要設定係統變量,以便終端可以找到編譯器等。

安裝指南告訴我運行一些包含的設定腳本或將它們包含在我的 bash 設定檔中等。

但它總是說,例如:

使用編譯器之前設定環境變數。您可以使用source指令來執行shell腳本compilervars。或編譯器變數。西施

然而它並沒有解釋這兩個變體之間的差異。我也無法在網路上其他地方找到這兩個檔案副檔名的任何比較。

我唯一可以推斷的是這些.csh檔案是 Mac OSX 特定的,從以下行:

在 Linux* 和 OS X* 上,該檔案是一個名為compilervars.sh 或compilervars.csh 的shell 腳本

在運行任何操作之前我想了解更多細節。

答案1

.sh表示 Bourne shell ( sh) 或 Bourne Again shell ( bash) 的腳本,通常是其前身的超集。

.csh表示 C shell ( csh) 的腳本,作為一個 shell,它在很大程度上相似,但一旦您開始執行比執行一系列靜態命令更複雜的操作,就會顯著不同。

這兩種 shell 通常都可以在任何 POSIXy 環境中使用,而且實際上兩者都經常預先安裝,儘管bash(及其表兄弟sh)根據我的經驗更加普遍。

我在上面說“指示性”,是因為文件擴展名的概念在技術上並不存在,並且沒有語義或語法意義。一個檔案可以被命名為script.steveordocumentation.exe或,include.h但實際上仍然是一個 shell 腳本。要獲得更明確的確認,請查看文件的第一行。對於設計為直接執行的腳本,它應該以 shebang 行開頭,該行以 octothorpe ( #)、bang ( !) 和應運行該腳本的可執行檔的路徑開頭。例如:

#!/usr/local/bin/bash

或者

#!/usr/bin/python3

相關內容