我有一个 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
。