我已经创建了一个运行某个函数的脚本。在运行某个函数之后,它会调用另一个运行另一个函数的脚本。它工作得很好。但是,我使用下面这行代码调用了第二个脚本:
( exec "/home/sh0/folder/folder2/folder3/secondScript" )如果我在另一台机器上用完全不同的文件路径运行我的脚本会怎么样呢?有没有一种方法可以在任何机器上调用脚本,而不用担心文件路径?
另外,我的所有脚本都位于同一个目录中,即'folder3‘。
提前感谢!
发布于 2016-08-27 10:51:17
最后,您必须知道脚本的安装位置,并确保该目录位于$PATH上。然后,您可以使用secondScript,而无需指定脚本的任何路径。
但是,如果不同机器的位置可能不同,您必须决定如何减少差异。一种常见的选择是将脚本保存在一个已知位置,如$HOME/bin或/usr/local/bin,您可以将该已知位置保存在/opt/program/bin中的- or路径上(根据您所使用的程序系统,对program使用适当的名称)。
另一种选择是使用一个环境变量来指定脚本的位置(PROGRAMLOCATION=/home/sh0/folder/folder2/folder3和export PATH=$PATH:$PROGRAMLOCATION)。然后,您必须确保适当地设置环境变量(PROGRAMLOCATION和PATH) -这可能很棘手。
如果您认为文件夹名足够唯一,您可以(但可能不应该)使用find来定位目录。当你找到6个相同名称的不同目录时,你会怎么做?另外,不受约束的find很慢--特别是当您有挂载的文件系统时。
https://stackoverflow.com/questions/39176929
复制相似问题