首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Bash脚本中指定路径变量

在Bash脚本中指定路径变量
EN

Stack Overflow用户
提问于 2016-08-27 10:39:18
回答 2查看 70关注 0票数 2

我已经创建了一个运行某个函数的脚本。在运行某个函数之后,它会调用另一个运行另一个函数的脚本。它工作得很好。但是,我使用下面这行代码调用了第二个脚本:

代码语言:javascript
运行
复制
( exec "/home/sh0/folder/folder2/folder3/secondScript" )

如果我在另一台机器上用完全不同的文件路径运行我的脚本会怎么样呢?有没有一种方法可以在任何机器上调用脚本,而不用担心文件路径?

另外,我的所有脚本都位于同一个目录中,即'folder3‘。

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-08-27 10:51:17

最后,您必须知道脚本的安装位置,并确保该目录位于$PATH上。然后,您可以使用secondScript,而无需指定脚本的任何路径。

但是,如果不同机器的位置可能不同,您必须决定如何减少差异。一种常见的选择是将脚本保存在一个已知位置,如$HOME/bin/usr/local/bin,您可以将该已知位置保存在/opt/program/bin中的- or路径上(根据您所使用的程序系统,对program使用适当的名称)。

另一种选择是使用一个环境变量来指定脚本的位置(PROGRAMLOCATION=/home/sh0/folder/folder2/folder3export PATH=$PATH:$PROGRAMLOCATION)。然后,您必须确保适当地设置环境变量(PROGRAMLOCATIONPATH) -这可能很棘手。

如果您认为文件夹名足够唯一,您可以(但可能不应该)使用find来定位目录。当你找到6个相同名称的不同目录时,你会怎么做?另外,不受约束的find很慢--特别是当您有挂载的文件系统时。

票数 3
EN

Stack Overflow用户

发布于 2016-08-27 10:53:30

您可以简单地存储如下所示的路径

代码语言:javascript
运行
复制
#!/bin/bash

MY_PATH="$PWD"
FOLDER3="folder3"

echo "$MY_PATH/$FOLDER3"

如果这是你要找的,请让我们知道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39176929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档