首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路径路径前缀

路径路径前缀
EN

Stack Overflow用户
提问于 2012-08-31 19:20:55
回答 4查看 918关注 0票数 3

是否有一些特殊的路径前缀,如~,表示“在路径中搜索所有地方”?我知道当只提供可执行文件的基本名称时,这是默认行为,但是使用像a=b这样的奇特的可执行文件名称,我只能使用路径调用它,无论是完整的还是相对的。/a=b。如果我只提供基本名称a=b,bash将其解释为变量赋值。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-31 20:15:51

没有这样的前缀。如果你的唯一目的是执行一个带有“奇怪”字符的文件名,你就不需要了:只要引用这些字符就行了,例如'a=b'a\=b。然后,bash的解析和扩展导致命令的第一个单词是a=b,它和其他命令名一样在path中查找。

如果您想在路径中查找程序,但不想执行它,请使用command -v。(还有其他具有相同效果的内置,command -v具有可移植性的优势(它是一个bash内置,并且是POSIX语言)。不要使用which,它是一个外部命令,不可靠且不可移植。)

如果要查找包含a=b all the directories in the path,可以使用type -a

代码语言:javascript
复制
type -aP a=b
票数 3
EN

Stack Overflow用户

发布于 2012-08-31 19:46:40

它不完全是一个前缀,但是引用可执行文件的名称(比如'a=b')就可以在路径中找到它。(Bash 3.2.17)

票数 4
EN

Stack Overflow用户

发布于 2012-08-31 20:05:51

内置的command正是为此目的而设计的,即查找命令(不是别名,也不是函数)。

代码语言:javascript
复制
command a=b

应该能行得通。来自bash手册:

命令-pVv命令arg ...使用args运行命令,禁止正常的shell函数查找。仅执行内置命令或在路径中找到的命令。如果给定了-p选项,则使用PATH的默认值执行搜索命令,该路径可以确保找到所有标准实用程序。如果提供了-V或-v选项,将打印命令的说明。-v选项会显示一个单词,指示用于调用命令的命令或文件名;-V选项会生成更详细的描述。如果提供了-V或-v选项,则在找到命令时退出状态为0,如果未找到,则退出状态为1。如果未提供任何选项且发生错误或找不到命令,则退出状态为127。否则,内置命令的退出状态为command的退出状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12214279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档