读取嵌套引号中的变量

时间:2019-09-25 01:11:19

标签: bash ssh

我想SSH进入主机并启动一个容器并运行一些命令。因此,代码将如下所示:

ssh $host 'screen -L -d -m bash -c "docker run "\
  "--network=host -v ~/data:/data myimage:${TAG_NAME}"\
  " /bin/bash -c \" some command.... \""'

问题很简单,因为我使用的是单引号,所以我看不到${TAG_NAME}。有什么办法写这种嵌套的引号并传递变量?

1 个答案:

答案 0 :(得分:0)

您可以停止和开始单引号以包括环境变量,如下所示:

echo 'foo'"$HOME"'foo'

例如,在$host上运行的命令中包含env var(来自本地系统)的方式为:

ssh $host 'screen -L -d -m bash -c "docker run'\
 ' --network=host -v ~/data:/data myimage:'"$TAG_NAME"\
 ' /bin/bash -c \" some command.... \""'