2017-01-14 35 views
0

我使用C語言編寫測試腳本,將其編譯並放到/ usr/bin目錄中,從mkdirls之類的任何位置執行它。但後來我寫了$ test沒有發生,如果我寫$ /usr/bin/test它運作良好。我做錯了什麼?我得到了Ubuntu 14.C腳本無法全局工作

+7

千萬不要將程序命名爲'test',因爲這是shell中的標準命令。見例如[這個'測試'手冊頁](http://man7.org/linux/man-pages/man1/test.1.html)。通過將其複製到'/ usr/bin',您已經覆蓋了現有的任何可能存在的'test'命令。 ***永遠不要盲目地將你的程序複製到系統目錄! –

+0

沒有代碼發佈,這甚至不是主題上的遠程。 「我的Linux命令不起作用」問題屬於http://unix.stackexchange.com/請閱讀[問]。 – Mawg

回答

2

在炮彈(如bash)中,有一個炮彈內置命名爲test。因此,當您執行test時,即使您的test/usr/bin/中,假設您在PATH中有/usr/bin/,也會執行shell內建test。當你給出完整路徑時,那裏沒有歧義(就像其他名爲test的二進制文件,它們可能在PATH或builtins中)。

您可以通過運行測試:

$type test 

名稱的二進制文件到別的東西,不與系統二進制文件或shell內建的干擾。通常建議您將二進制文件放在指定的位置,例如usr/local/bin/,即使您的二進制文件是唯一命名的。