当前位置: 首页 > 面试题库 >

无法通过脚本文件导出变量

别旻
2023-03-14
问题内容

我正在尝试通过myDeploy.sh导出变量,但未设置导出。当我回声时,它不是在回声。但是,当我在命令上显式设置变量时,它也会正确设置并回显。以下是我的代码段。

myDeploy.sh

 #!/bin/bash

# export the build root

export BUILD_ROOT=/tibco/data/GRISSOM2

export CUSTOM1=/tibco/data/GRISSOM2/DEPLOYMENT_ARTIFACTS/common/MDR_ITEM_E1/rulebase

export CLEANUP=$BUILD_ROOT/DEPLOYMENT_ARTIFACTS/common

cd $BUILD_ROOT/DEPLOYMENT_ARTIFACTS/common

当我回声时echo $BUILD_ROOT,并不是在为我回声。但是当我在命令提示符下明确执行它时

[root@krog3-rhel5-64 GRISSOM2]# export BUILD_ROOT=/tibco/data/GRISSOM2

它设置正确并且也回显。我想念什么?


问题答案:

像这样运行脚本

. ./script

要么

source script

会在当前shell上下文中执行脚本(不创建子shell),并且脚本中设置的环境变量将在 当前 shell中可用。

从手册中:

文件名 [ 参数 ]

从当前Shell上下文中的 filename 参数读取和执行命令。如果 filename
不包含斜杠,则该PATH变量用于查找文件名。当Bash不在POSIX模式下时,如果在中找不到文件名,则搜索当前目录$PATH。如果提供了任何参数,则在执行
文件名 时它们将成为位置参数 。否则,位置参数将保持不变。返回状态是最后执行的命令的退出状态;如果未执行任何命令,则返回零。如果找不到 文件名
或无法读取 文件名 ,则返回状态为非零。此内建等效于source




 类似资料:
  • 我有这样的设置: 所有.飞镖只是导入脚本1.飞镖和脚本2.dart并调用它们的主要。目标是在细节下有一堆可以单独运行的脚本。此外,我想要一个单独的 all.dart 脚本,可以一次运行所有脚本。这将使调试单个脚本更简单,但仍允许所有脚本运行。 all.dart 脚本1.飞镖 脚本2.dart 所以,这是工作,我看到运行时预期的打印语句all.dart但我有两个问题。 首先,我必须在详细信息下软链接

  • 问题内容: 我想编写一个脚本将文件上传到FTP。 登录系统将如何工作?我正在寻找这样的东西: 以及任何其他登录凭据。 问题答案: 使用,您可以这样编写: 如果FTP主机需要TLS,请改用。 要检索它,可以使用: 编辑 : 要查找当前目录,请使用: FTP.pwd():返回服务器上当前目录的路径名。 要更改目录,请使用: FTP.cwd(pathname):设置服务器上的当前目录。

  • 我需要导出很多变量,比如export x1=1 export x2=2 我移动了文件中的所有变量。环境和尝试 源代码 之后我处决了 所有这些变量都不在环境变量列表中。我还尝试了

  • 我必须将一个文件从一个位置移动到另一个位置,然后运行名为“Irel_Wrapper”的脚本 在putty中,我使用了/home/location mv filename。 所以在Java我使用通道(Exec),我能够执行上述场景,即移动文件作为mv命令是一个puty命令。 但是我不能运行脚本Irel_Wrapper(我的猜测是,因为它不是一个油灰本地命令,我不能在java与通道(Exec)。 我基

  • 问题内容: 我一直在尝试通过phpMyAdmin导入数据库。我的数据库文件是,它的大小是1.2 GB,我正在尝试将其导入本地,并且phpMyAdmin表示: 您可能试图上传太大的文件。请参阅文档以了解解决此限制的方法。 请帮助我,我真的需要这个工作。 问题答案: 这是由于PHP对上传文件具有文件大小限制。 如果您具有终端机/外壳程序访问权限,则以上答案@Kyotoweb将起作用。 一种实现方法是创

  • 问题内容: 使用PHP,我试图提供由于授权问题而不在网络可访问目录中的大文件(最大可能为200MB)。当前,我使用一个调用以及一些标头来提供文件,但是似乎PHP在发送之前先将其加载到内存中。我打算在共享托管服务器上进行部署,这将不允许我使用太多内存或添加自己的Apache模块(例如X- Sendfile)。 出于安全原因,我不能让我的文件位于可通过网络访问的目录中。有人知道我可以在共享主机服务器上