【发布时间】:2017-10-19 18:22:59
【问题描述】:
我正在尝试通过以下方式使用 docker CLI 命令添加变量:
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test\'2\"}'"
但出现以下错误:
bash: -c: line 0: 在寻找匹配的 `"' 时出现意外的 EOF
bash: -c: line 1: 语法错误:文件意外结束
如果执行以下命令之一,我没有任何错误:
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test\`2\"}'"
或
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test2\"}'"
如何在“test'2”值中转义撇号以避免错误?
【问题讨论】:
-
所以如果你
printf X"airflow variables --set my_var '{\"test\": \"test\'2\"}'"X\\n你会得到Xairflow variables --set my_var '{"test": "test'2"}'X这将告诉你在 arg 4 中有一个普通的'在'{…}'里面。您可能需要"airflow variables --set my_var '{\"test\": \"test'"\\\'"'2\"}'",它给出airflow variables --set my_var '{"test": "test'\''2"}',这意味着arg 4 ={"test": "test'2"}
标签: bash docker escaping airflow apache-airflow