一般来说,我对Bash和Linux相当陌生。 我已经创build了一些我希望能够通过键入命令而不是目录和可执行文件来使用的脚本。 如果这有所作为,我正在使用Debian Jessie。
其中一个脚本的path是~/Scripts/DIR_1/My_Script.sh
而另一个~Scripts/DIR_2/My_Other_Script.sh
在~Scripts/DIR_2/My_Other_Script.sh
。 我希望Scripts
目录中包含的所有Scripts
都被编入索引,而不pipe目录/path深度如何。
我已经将这个文本附加到我的.bashrc
文件的末尾…
PATH=${PATH}:$(find ~/Scripts -type d | sed '/\/\\./d' | tr '\n' ':' | sed 's/:$//')
因为我对这种事情很陌生,所以我不得不从这里偷走那条线。
当我尝试从我的主文件夹(或任何其他地方)的子目录命令行运行My_Script
,我得到My_Script: command not found
我会承认,我可能误解了在命令行中添加bash脚本的过程。
如何recursion地添加bash脚本作为命令? 我目前使用的stream程有什么问题?
我认为你的问题是你没有把.sh,这是你的文件名的一部分。
通常,在输入第一个字母之后按Tab键应该完成命令,直到有歧义的地方(或者完全没有)。 如果含糊不清,请再次按Tab键显示选项。 所以在你的情况下,如果你输入My<tab><tab>
你应该有选项My_Script.sh
和My_Other_Script.sh
显示。 如果你输入My_Script<tab>
它应该通过放置My_Script.sh
来完成
编辑
我忘了确切地说,你可以通过echo $PATH
来检查PATH的值。 这将允许您检查您所复制的命令是否符合您的要求。