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