Bash

./ 在 shell 中是什麼意思?

  • July 6, 2022

我有一個來自這裡hello_world.c的簡單文件。我想出瞭如何去做。

gcc -Wall -g hello_world.c -o hello 正在工作,但是如果我執行bash hello,則會出現錯誤:hello: hello: cannot execute binary file

sh hello然後錯誤:hello: 1: Syntax error: "(" unexpected

./hello列印出預期的行。

我以為這三個都是一樣的。從結果來看不是。為什麼其他兩個不起作用?除了./hello,還有其他方法可以呼叫該文件hello嗎?

前兩次嘗試bash hellosh hello,您試圖說服那些 shell(bashsh分別)該hello文件是 shell 執行檔。因為它是一個二進製文件,shell 不知道如何處理被告知執行它,所以它們會給你那些錯誤消息。第三個範例,您將hello二進製文件作為二進製文件執行,這是 shell 期望它執行的方式。這./只是一個指示可以在目前目錄中找到二進製文件的位置 ( .)。為什麼需要./? 大多數時候,“目前工作目錄”不是$PATH變數的一部分,所以簡單地執行hello不會在任何地方找到執行檔。

引用自:https://unix.stackexchange.com/questions/708804