从上层文件加载命令参数

从上层文件加载命令参数

我遇到了一个有趣的问题,但我尚未能令人满意地解决。

考虑一个带有两个参数的笔记命令:

note $project  $note

这只是根据第一个参数将 $note 的内容归档到项目下。

现在我有两个项目,我在其中输入一些数据:

note "projectA" "asdfasdf"
note "projectB" "weradfvsaf"

当我的项目很少时,这很有效。然后我有了更多的项目,我有了一个想法:使用当前路径来确定项目的名称:

+~
+~/projects/projectA
+~/projects/projectB/subdir
+~/projects/...

因此,我为上述函数编写了一个包装器,用于从目录路径中解析项目名称。

这非常有效,直到我开始有多个项目跨越多个路径:

+~
+~/projects/projectA
+~/projects/projectB/subdir
+~/projects/temp/projectA
+~/test/projectA

现在我的问题是:我怎样才能继续偷懒呢?我认为最简单的方法是创建一个文件,例如project.rc,该文件仅包含该文件夹及其所在位置的所有子文件夹中包含的项目名称。包装器只是在当​​前目录中查找该文件,并继续在目录树中向上遍历,直到找到该文件。然后读取该文件并相应地设置 $project 参数。

我不太熟悉 shell 脚本;有人能想出解决这个问题的方法吗?

答案1

这就能解决问题:

 PPATH=$(while [[ "$PWD" != / && ! -f project.rc ]]; do cd ..; done; echo "$PWD")

然后,该变量PPATH将包含您调用命令的项目的路径。然后您可以在您的$PPATH/project.rc. (/如果父目录中没有该文件,则该变量将定位到。)

相关内容