将变量传递给调用脚本的脚本

将变量传递给调用脚本的脚本

我有一个 bash 脚本,它必须调用另一个因用户而异的 bash 脚本才能获取一些配置信息,如下所示:

一些脚本:

#!/bin/bash
${HOME}/.ssconfig
echo "Hello, ${VARIABLE}!"

~/.ssconfig

#!/bin/bash
VARIABLE=world

它并没有Hello, world!像预期的那样给我信息,而是给了我Hello, !
如何将变量从脚本传递给调用它的脚本?

答案1

执行脚本不会影响调用它的 shell,因为脚本在自己的 shell 中运行。要影响调用 shell,您需要来源剧本:

$ help source  
source: source filename [arguments]  
    Execute commands from a file in the current shell.

    Read and execute commands from FILENAME in the current shell.  The
    entries in $PATH are used to find the directory containing FILENAME.
    If any ARGUMENTS are supplied, they become the positional parameters
    when FILENAME is executed.

因此,执行配置文件的行应该更改为源文件:

#!/bin/bash
source ${HOME}/.ssconfig
echo "Hello, ${VARIABLE}!"

请注意,source是一个 shell 命令,因此它的帮助不在 中man source,而是在 中help source

相关内容