如果我放入一个可执行文件,~/bin
我只需输入文件名的前几个字母,然后点击tab
让 shell 完成名称的其余部分。
虽然这适用于可执行程序,它似乎不适用于地狱脚本。这是期望的行为吗,还是我做错了什么?
答案1
即使脚本也需要设置可执行位。
答案2
您可能会将脚本命名为与 $PATH 中现有应用程序或可执行文件类似的名称(启动)(或者,正如 Oli 提到的,您忘记使其可执行)。
另一件事是,在 $PATH 中的可执行文件中使用语言扩展是一种不好的做法,请参阅此链接
答案3
我使用的zsh
是 shell,在输入脚本后/usr/local/bin
无法完成 tab 补全。正如另一个答案中暗示的那样,我检查了可执行位是否已设置。
事实证明,我必须source ~/.zshrc
重新启动我的终端(实际上是将我注销然后重新登录)才能使我的脚本可通过制表符完成。
答案4
任何人在尝试使用 /usr/local/bin 中新安装的二进制命令时都会遇到 zsh 的自动完成问题,这可能是由于 zsh 使用自动完成缓存造成的。使用命令rehash
生成新的自动完成缓存将解决该问题。这也意味着如果您手动删除命令,您可能还需要运行它来更新缓存。