执行docker run映射目录时出现bash Bad substitution错误如何解决?
报错原因
bash语法中${}是用于读取环境变量值的固定写法,官方示例中的${PWD}是读取系统内置的「当前工作目录」环境变量,属于合法用法。
你自行编写的命令中把绝对路径/home/segun/tf3d直接放入${}包裹,bash会将整体识别为环境变量名,系统不存在该名称的环境变量,因此触发bad substitution错误。
修正方案
根据你的使用场景,有两种修正方式:
- 固定映射
/home/segun/tf3d路径到容器:直接删除${}包裹即可,修正后的命令如下:
docker run --runtime=nvidia --privileged -it -v /home/segun/tf3d:/tf3d -w /tf3d/ops tensorflow/tensorflow:custom-op-gpu-ubuntu16
- 如果你执行命令时的当前终端工作目录就是
/home/segun/tf3d,也可以直接复用官方示例的${PWD}写法,命令如下:
docker run --runtime=nvidia --privileged -it -v ${PWD}:/tf3d -w /tf3d/ops tensorflow/tensorflow:custom-op-gpu-ubuntu16
内容的提问来源于stack exchange,提问作者Ibukunoluwa Adegbite
相关产品推荐
相关产品推荐

