bash - bash: C:/Program: 没有这样的文件或目录
问题描述
我是 Docker、Debezium、Bash 和 Kafka 的新手。我正在尝试在 Windows 10 上运行 MSSQL Server 的 Debezium 教程/示例:
https://github.com/debezium/debezium-examples/blob/master/tutorial/README.md#using-sql-server
我可以按照第一步启动拓扑。但是,当我转到第二步并执行以下命令时:
cat debezium-sqlserver-init/inventory.sql | docker exec -i tutorial_sqlserver_1 bash -c '/opt/mssql-tools/bin/sqlcmd -U sa -P $SA_PASSWORD'
我收到以下错误:
bash: C:/Program: 没有这样的文件或目录
我不知道为什么它甚至会拖到C:/Program
这一点。我没有在命令中看到它,也没有在 *.sql 文件中看到它。有谁知道为什么会发生这种情况以及解决方法是什么?
注意1:我已经在这个命令应该可以运行的当前目录中,并且文件夹/文件路径中没有空格
注意 2:我在 Git Bash 中运行命令
使用set -x
来记录命令的运行方式时,仍然没有C:/Program
任何内容,如下面的日志所示:
$ cat debezium-sqlserver-init/inventory.sql | docker exec -i tutorial_sqlserver_1 bash -c '/opt/mssql-tools/bin/sqlcmd -U sa -P $SA_PASSWORD'
+ cat debezium-sqlserver-init/inventory.sql
+ docker exec -i tutorial_sqlserver_1 bash -c '/opt/mssql-tools/bin/sqlcmd -U sa -P $SA_PASSWORD'
bash: C:/Program: No such file or directory
解决方案
我昨天遇到了类似的问题,解决方案是在绝对路径之前添加一个反斜杠,例如:
cat debezium-sqlserver-init/inventory.sql | docker exec -i tutorial_sqlserver_1 bash -c '\/opt/mssql-tools/bin/sqlcmd -U sa -P $SA_PASSWORD'
\/opt/mssql-tools/bin/sqlcmd 阻止转换为 Windows 路径。
推荐阅读
- sql - SQL CREATE NEW COLUMN NETWORKDAYS 包括假期
- javascript - 是否可以为机车滚动中的粘性图像添加最高价值?
- angular - Angular - 如何验证反应形式数组中的数字范围
- typescript - 有条件地启用身份验证策略的好方法是什么?
- c++ - 允许随机访问更新权重的 c++ 优先级队列?
- node.js - 读取 Kubernetes configMap , nodeJS/express API 应用程序
- parallel-processing - Oozie 如何安排分叉中的后续操作?
- python - 如何在代码工作簿中合并 Palantir Foundry 中的两个数据集?
- r - 修改元素周围元素的矩阵?
- php - 获取字符串 aXbcXYaXaY 中所有可能的组合