我有多个 Amazon EC2 账户,并希望能够$EC2_HOME使用脚本快速切换变量,例如。
我有一个如下设置的shell脚本:
#!/bin/sh
export EC2_HOME=/home/me/.ec2
echo $EC2_HOME
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,我知道EC2_HOME已设置,但我认为使用export会使变量在脚本完成后继续存在。它没有,因为运行echo $EC_HOME不会显示任何内容。
我知道这一定是非常初级的 Linux 脚本知识,但我不知道。我试图在没有运气的情况下寻找相关问题 - 如果这是重复的,我深表歉意。
我刚遇到一个问题,显示我不清楚 shell 变量的范围。
我试图使用bundle install,这是一个 Ruby 命令,它使用 的值$GEM_HOME来完成其工作。我已经设置了$GEM_HOME,但是在我使用之前,该命令忽略了该值export,如export GEM_HOME=/some/path.
我读到这使变量以某种方式“全局”(也称为环境变量),但我不明白这意味着什么。我了解编程中的全局变量,但不了解不同的程序。
此外,鉴于我设置的此类变量仅适用于当前的 shell 会话,我将如何为守护进程设置它们?
shell 变量可以有哪些作用域?