Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 为什么/usr/local/bin中自制的符号链接/别名在';其中';指挥部?_Bash_Macos_Symlink_Bin - Fatal编程技术网

Bash 为什么/usr/local/bin中自制的符号链接/别名在';其中';指挥部?

Bash 为什么/usr/local/bin中自制的符号链接/别名在';其中';指挥部?,bash,macos,symlink,bin,Bash,Macos,Symlink,Bin,我最近一直在创建bash脚本,希望将它们存储在我的/usr/local/bin目录中。当我ls这个目录时,我看到了许多我认为是符号链接的路径。例如: brew->/usr/local/HomeBrew/bin/brew 我已经能够成功地创建到我自己脚本的符号链接,并使用ln命令将它们存储在我的/usr/local/bin中: ln-s/User/me/Projects/bash/my\u script/usr/local/bin/my\u script 一切都按预期运行 我遇到的问题是,当我

我最近一直在创建bash脚本,希望将它们存储在我的
/usr/local/bin
目录中。当我
ls
这个目录时,我看到了许多我认为是符号链接的路径。例如:

brew->/usr/local/HomeBrew/bin/brew
我已经能够成功地创建到我自己脚本的符号链接,并使用
ln
命令将它们存储在我的
/usr/local/bin
中:

ln-s/User/me/Projects/bash/my\u script/usr/local/bin/my\u script
一切都按预期运行

我遇到的问题是,当我尝试运行
我的脚本时,它不会像其他脚本一样返回一个好的标准输出结果。例如,运行brew
返回的
/usr/local/bin/brew
,使用标准输出格式,以便与其他命令一起使用

运行my_script
将成功检测我的脚本,但返回

myu脚本:别名为~/Projects/bash/myu脚本
这使得与其他命令的组合更加困难


有谁能解释一下区别是什么,以及我如何解决这个问题吗?

您必须定义了一个名为
my_script
的别名,它隐藏了您的符号链接。你可以做一个

type -a my_script
查找所有定义。要绕过别名,请使用

command my_script

除此之外:你确定你真的想从
/usr/local/bin
链接到
/User/me
下面的东西吗?这在我看来并不明智。将
/User/me/Projects/bash
放在路径中不是更好吗?

您确定没有在
.zshrc
中为
我的脚本设置
别名吗?这就是它看起来的样子。@I'L'I这是标记的,问题反复提到Bash;所以可能是
.bash\u profile
和/或
.bashrc
我认为可能是这样的,但我已经检查并从.bashrc中删除了我脚本的任何别名,并对其进行了重新来源:/所以我不认为是这样。因此,当我运行
键入-a my\u脚本
时,我会得到一个很长的路径列表,第一个就是我上面提到的路径<代码>我的脚本是/Users/me/Documets等的别名。
您建议我如何添加到路径?(我正在使用bash、.bashrc等)首先,删除别名定义。然后,将其放入启动文件中,其中可能已经包含指向路径的其他目录。根据您对bash的使用情况,
~/.bash\u profile
,分别
~/.bashrc
,可能是明智的选择。阅读bash手册页中的标题调用部分,该部分解释了bash在何种情况下自动处理哪些文件。