【发布时间】:2015-09-18 03:24:58
【问题描述】:
我知道之前在 stackoverflow 上已经提出并回答了类似的问题(例如 here 和 here),但到目前为止,我还无法针对我的特殊情况弄清楚。
我正在尝试创建一个脚本,仅当变量 something 等于 "true" 时才添加 -v 标志(我想要做的是将当前文件夹挂载为位于/src 在 Docker 容器中):
docker run --name image-name `if [ "${something}" == "true" ]; then echo "-v $PWD:/src"; fi` ....
问题是$PWD 可能包含空格,如果是这样,我的脚本将无法工作。我也尝试将"$PWD" 分配给一个中间变量,但它仍然不起作用:
temp="$PWD"
docker run --name image-name `if [ "${something}" == "true" ]; then echo "-v $temp:/src"; fi` ....
如果我跑:
docker run --name image-name -v "$PWD":/src ....
从普通 bash(不使用我的脚本)然后一切正常。
有人知道怎么解决吗?
【问题讨论】:
-
这本质上是Bash FAQ 050。所以答案是你没有。你不这样做。您使用数组或类似的。
-
欢迎来到文件名空间地狱。一个漂亮的符号链接指向该死的文件名并且不包含空格怎么样?
标签: bash