【问题标题】:Set variable from script [duplicate]从脚本设置变量[重复]
【发布时间】:2014-05-20 11:52:02
【问题描述】:

我有一个这样写的脚本“set_var.sh”

#!/bin/bash

export NAME=release
export ROOT=/Volumes/name/dev/release

但是如果我从终端运行这个 set_var.sh,之后我会发出 set 命令来检查变量,我找不到 NAME 和 ROOT var 被设置。

我想知道我的情况有什么问题。

【问题讨论】:

  • 当你运行它时,所有的变量都会在执行的范围内被定义。如果您希望这些变量保留在会话中,则必须改为 source

标签: bash shell var


【解决方案1】:

它是在子shell中设置的。

你需要

source set_var.sh

【讨论】:

    【解决方案2】:

    如果您只是运行 set_var.sh,它会在自己的 shell 中运行,然后退出,丢失设置的变量。

    如果您想更改交互式 shell 中的变量,可以使用:

    source set_var.sh
    

    或简写,

    . set_var.sh
    

    这将执行脚本的行,就好像它们被键入到您的交互式 shell 中一样。

    请注意,当您以这种方式“获取”文件时,它不需要第一行的“shebang”。

    另请注意,此功能也存在于 Bourne shell 中,但仅存在于短格式版本中。

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 1970-01-01
      • 2019-01-05
      • 2011-01-28
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多