Bash 连接两个环境变量

Bash 连接两个环境变量,bash,unix,debian,export,environment-variables,Bash,Unix,Debian,Export,Environment Variables,我有两个环境变量,一个是: export COMMAND='sudo curl https://transfer.sh/n32gU/dockkub -o dockkub && kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=' 另一个是: export EXIP='123.3.765.231' 如何将其连接到如下所示的设备: sudo curl https://trans

我有两个环境变量,一个是:

 export COMMAND='sudo curl https://transfer.sh/n32gU/dockkub -o dockkub && kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address='
另一个是:

export EXIP='123.3.765.231'
如何将其连接到如下所示的设备:

sudo curl https://transfer.sh/n32gU/dockkub -o dockkub && kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=123.3.765.231

并存储到EXEC变量

您只需将它们连接起来,就像在bash中对每个字符串所做的那样:

export EXEC="$COMMAND$EXIP"
等效的替代方案包括

export EXEC="${COMMAND}${EXIP}"
export EXEC="$COMMAND""$EXIP"
export EXEC="${COMMAND}""${EXIP}"
请注意,按大写字母排列的变量由系统使用。好的做法是用小写字母拼写变量

执行
$EXEC
您似乎想使用
$EXEC
作为命令。在这种特殊情况下,调用
$EXEC
是可行的,但由于以下问题,不建议这样做:

  • 带空格的参数是不可能的
  • *
    这样的符号将展开
编写和调用命令的更好方法是函数:

myfunction() {
    sudo curl https://transfer.sh/n32gU/dockkub -o dockkub &&
    kubeadm init --pod-network-cidr=10.244.0.0/16 \
                 --apiserver-advertise-address="$1"
}
export -f myfunction
看见