bash - 读取嵌套引号中的变量
问题描述
我想 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}
. 有没有办法编写这种嵌套引号并传递变量?
解决方案
您可以停止和启动单引号以包含环境变量,如下所示:
echo 'foo'"$HOME"'foo'
对于您的示例,在运行的命令中包含 env var(来自本地系统)的$host
方法是:
ssh $host 'screen -L -d -m bash -c "docker run'\
' --network=host -v ~/data:/data myimage:'"$TAG_NAME"\
' /bin/bash -c \" some command.... \""'
推荐阅读
- javascript - 在 JavaScript 中获取价值
- excel - 如果 2 对单元格不相等,请在 VBA 中执行某些操作
- db2 - DB2 监控工具 LUW
- java - 如何从 S3 存储桶的各个文件夹中下载与文件名具有相同前缀的多个文件?
- jquery - 使用 jQuery 根据特定元素值和位置重新排序列表项
- ember.js - 在同一个api调用emberjs中加载多个模型数据?
- php - 如何在这些参数上实现 cURL
- jenkins - 禁止在 Jenkins 的特定分支上手动构建
- c# - Task.Run on 方法返回 T VS 方法返回 Task
- node.js - Node.js Crypto,AES 的默认填充是什么?