首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么"bash -c 'echo $hiveURI“显示一个值,而"ssh -c 'bash -c echo $hiveURI'”没有显示任何值?

在这个问答内容中,"bash -c 'echo $hiveURI'"和"ssh -c 'bash -c echo $hiveURI'"是两个命令行命令。这两个命令的区别在于它们的执行环境和上下文。

首先,让我们解释一下这两个命令的含义:

  1. "bash -c 'echo $hiveURI'":这个命令使用bash shell来执行一个简单的命令,即打印出环境变量hiveURI的值。
  2. "ssh -c 'bash -c echo $hiveURI'":这个命令使用ssh命令通过远程连接执行一个命令。在这个命令中,远程主机会执行一个bash shell,并尝试打印出环境变量hiveURI的值。

现在我们来解释为什么这两个命令的输出不同:

  1. "bash -c 'echo $hiveURI'"的输出:这个命令在当前的bash shell环境中执行,所以它可以访问并打印出当前环境变量hiveURI的值。
  2. "ssh -c 'bash -c echo $hiveURI'"的输出:这个命令通过ssh连接到远程主机,并在远程主机上执行一个bash shell。在远程主机上执行的bash shell是一个新的子进程,它的环境变量与本地主机的环境变量是独立的。因此,它无法访问本地主机的环境变量hiveURI,所以没有任何值被打印出来。

综上所述,"bash -c 'echo $hiveURI'"可以显示环境变量hiveURI的值,而"ssh -c 'bash -c echo $hiveURI'"没有显示任何值是因为远程主机的bash shell无法访问本地主机的环境变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券