Cygwin(或实际的unixshell)是否有一些命令将名称从另一个名称空间导入当前名称空间,如在Python中?

Cygwin(或实际的unixshell)是否有一些命令将名称从另一个名称空间导入当前名称空间,如在Python中?,shell,cygwin,Shell,Cygwin,在Python中,我们可以使用import将另一个名称空间的名称导入到当前名称空间中 类似地,在unixshell脚本中是否存在类似名称空间的概念?如果是这样,那么Cygwin或实际的UNIX shell是否有一些命令将名称从另一个名称空间导入当前名称空间(如Python中)?谢谢 对拥有管理员权限的社区成员注意:我真的认为这个问题是一个编程问题,而不是一个超级用户问题。如果您不同意,请详细说明原因。非常感谢您抽出时间。没有办法完全满足您的要求 源envFile命令及其替代项。envFile非常

在Python中,我们可以使用import将另一个名称空间的名称导入到当前名称空间中

类似地,在unixshell脚本中是否存在类似名称空间的概念?如果是这样,那么Cygwin或实际的UNIX shell是否有一些命令将名称从另一个名称空间导入当前名称空间(如Python中)?谢谢


对拥有管理员权限的社区成员注意:我真的认为这个问题是一个编程问题,而不是一个超级用户问题。如果您不同意,请详细说明原因。非常感谢您抽出时间。

没有办法完全满足您的要求

源envFile命令及其替代项。envFile非常有用

envFile文件将只是一个环境辅助的列表

FrontOfficeSystem=MyFrontOffice
BackOfficeSystem=myBackOffice
当您在脚本中包含命令以“源”envFile时,任何名称都可以使用,shell读取代码就像它直接在主shell脚本中一样。像“包括”在许多语言中。但是名称空间。。。不。见下一页

更有用:请参阅高级Bash脚本,这可能比使用eval更好。。。下面是per,但我还没有机会使用它

最后,您还可能受益于eval和varname间接寻址,即

 src=FrontOffice
 eval \$${src}System="${src} has data"

 src=BackOffice
 eval \$${src}System="${src} has data"
这不是一个很好的例子,但我没有机会接触到我真正了解这个想法的脚本。它帮助我将一些代码泛化,否则这些代码必须重复10次,对于每个数据src,我将重复的代码块放入for循环中,src名称作为foreach的元素列表,然后eval将${src}System扩展为FrontOfficeSystem,BackOfficeSystem。如果您的src列表的值中有空格,则所有赌注都将被取消

在终端窗口中使用set-vx并复制/粘贴上述代码以查看其工作原理。这可能会有帮助

我希望这有帮助


另外,作为一名新用户,如果您得到的答案有助于您,请记住将其标记为已接受,并/或给出+或-作为有用的答案。

顺便说一句,不是管理员决定的,而是社区本身。话虽如此,我还不知道有哪个shell能做到这一点——它们都依赖于内部命令或路径。如果要导入命令,请添加到路径。谢谢。我想尝试导入名称即变量,而不是命令。您可以始终使用源代码从通用脚本加载变量/别名/函数。