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