0
我使用C語言編寫測試腳本,將其編譯並放到/ usr/bin目錄中,從mkdir
或ls
之類的任何位置執行它。但後來我寫了$ test
沒有發生,如果我寫$ /usr/bin/test
它運作良好。我做錯了什麼?我得到了Ubuntu 14.C腳本無法全局工作
我使用C語言編寫測試腳本,將其編譯並放到/ usr/bin目錄中,從mkdir
或ls
之類的任何位置執行它。但後來我寫了$ test
沒有發生,如果我寫$ /usr/bin/test
它運作良好。我做錯了什麼?我得到了Ubuntu 14.C腳本無法全局工作
在炮彈(如bash)中,有一個炮彈內置命名爲test
。因此,當您執行test
時,即使您的test
在/usr/bin/
中,假設您在PATH
中有/usr/bin/
,也會執行shell內建test
。當你給出完整路徑時,那裏沒有歧義(就像其他名爲test
的二進制文件,它們可能在PATH或builtins中)。
您可以通過運行測試:
$type test
名稱的二進制文件到別的東西,不與系統二進制文件或shell內建的干擾。通常建議您將二進制文件放在指定的位置,例如usr/local/bin/
,即使您的二進制文件是唯一命名的。
千萬不要將程序命名爲'test',因爲這是shell中的標準命令。見例如[這個'測試'手冊頁](http://man7.org/linux/man-pages/man1/test.1.html)。通過將其複製到'/ usr/bin',您已經覆蓋了現有的任何可能存在的'test'命令。 ***永遠不要盲目地將你的程序複製到系統目錄! –
沒有代碼發佈,這甚至不是主題上的遠程。 「我的Linux命令不起作用」問題屬於http://unix.stackexchange.com/請閱讀[問]。 – Mawg