是否有像〜這樣的特殊路徑前綴,表示「在PATH中隨處搜索」?我知道這是隻提供可執行基本名稱時的默認行爲,但具有像a = b這樣奇特的可執行文件名稱,我只能使用路徑調用它,無論是完整的還是相對的,如./a=b。如果我只提供basename a = b,bash會將其解釋爲變量賦值。PATH路徑前綴
Q
PATH路徑前綴
3
A
回答
3
沒有這樣的前綴。如果您的唯一目的是執行帶有「奇怪」字符的文件名,則不需要它:引用這些字符,例如'a=b'
或a\=b
。然後,bash的解析和擴展會導致您的命令的第一個單詞是a=b
,它會像其他任何命令名一樣在路徑中查找。
如果要查找路徑中的程序但不執行該程序,請使用command -v
。 (還有其他內置的效果相同,command -v
具有便攜的優點(這是一個bash內置的,它在POSIX中)。不要使用which
,它是一個外部命令,不可靠且不便攜。)
If你想查找包含a=b
的all the directories in the path,你可以使用type -a
。
type -aP a=b
+0
感謝您的見解。迄今爲止,我認爲最好的答案。 –
4
0
我個人使用引號,但另一種可能是:
(exec a=b)
1
的command
內置正好爲此目的而設計,即尋找一個命令(不是別名,也不是一個函數)。
command a=b
應該這樣做。從bash的手冊:
command [-pVv] command [arg ...] Run command with args suppressing the normal shell function lookup. Only builtin commands or commands found in the PATH are executed. If the -p option is given, the search for command is performed using a default value for PATH that is guaranteed to find all of the standard utilities. If either the -V or -v option is supplied, a description of command is printed. The -v option causes a single word indicating the command or file name used to invoke command to be displayed; the -V option produces a more ver‐ bose description. If the -V or -v option is supplied, the exit status is 0 if command was found, and 1 if not. If neither option is supplied and an error occurred or command cannot be found, the exit status is 127. Otherwise, the exit status of the command builtin is the exit status of command.
相關問題
- 1. Git子樹前綴路徑
- 2. 刪除路徑前綴
- 3. 刪除文件:從URL文件路徑///前綴:///前綴從URL路徑
- 4. 共同路徑前綴JSON讀取
- 5. 模塊的節點路徑前綴
- 6. Rails的URL路徑時擺脫前綴
- 7. 創建POST路徑沒有前綴
- 8. 具有可選路徑前綴
- 9. 春季類路徑前綴區別
- 10. 前綴路由
- 11. Prepend Path前綴到所有軌道路線
- 12. 系統路徑與Sys.getenv('PATH')
- 13. 路由前綴voltrb
- 14. Cakephp路由前綴
- 15. WCF ServiceRoute路由前綴是否可以包含路徑值?
- 16. 如何重定向到Expressjs路由器中的前綴路徑
- 17. 如何設置默認路徑(路由前綴)?
- 18. C#:使用http/https前綴返回當前網絡路徑
- 19. 在Linux中顯示完整路徑而不是〜前綴路徑chrome apps
- 20. 目標部署路徑'...'與POM的預期路徑前綴不匹配
- 21. 處理路徑結尾相同並具有一組固定的路徑前綴
- 22. 如何在gulp注入腳本路徑中刪除路徑前綴?
- 23. 回形針+ AWS S3,使用我的本地路徑前綴固定路徑
- 24. 沒有模塊前綴路徑路徑的Rails namescoped模型對象
- 25. 角度MVC路由前綴
- 26. Rails - 前綴路由助手
- 27. 快速路由器前綴
- 28. Laravel 5路線前綴
- 29. UI路由器前綴
- 30. CakePHP的前綴路由
像這樣命名您的可執行文件在一般情況下顯然不是一個好主意。 – tripleee
但考慮到命令可能具有看起來像句法實體的奇怪名稱,這是一個有效的問題。 ''''僞裝成'/ usr/bin/test'。 – Jens