Filenames

執行為 .test 而不是 ./test

  • February 8, 2017

假設我與執行檔在同一個文件夾中,我需要輸入以下內容來執行它:

./file

我寧願不用打字/,因為/我很難打字。

有沒有更簡單的方法來執行文件?理想情況下只是一些簡單的語法,如:

.file

或其他東西,但比必須在/那裡插入字元更容易。

也許有一些方法可以在/bin目錄中放置一些東西,或者為解釋器創建一個別名,以便我可以使用:

p file

.至少在現代 Bash shell 中會自動完成./(鍵入.並按下Tab),因此您不必使用複雜或不安全(如PATH修改)的解決方案。

如果它沒有自動完成,您可能需要安裝“bash-completion”包。

或者..也許在 bashrc 文件中給解釋器一個別名,然後簡單地

   p  file

可以編寫這樣的函式:

p() {
./"$@"
}

在你的~/.bashrc. 然後你就可以執行p app arguments而不是./app arguments. 此解決方案適用於任何類型的執行檔,包括腳本和二進製文件。

"$@"擴展為傳遞給函式的適當引用的參數列表(保留 glob 或變數擴展中的所有特殊字元),並且正如@Scott 指出的那樣,bash它足夠聰明,可以./將其添加到第一個,保留其餘部分。

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