我正在尝试使用Docker CLI命令以以下方式添加变量:
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test\'2\"}'"
但是出现了以下错误:
如果执行以下其中一个命令,则没有任何错误:bash: -c: 第0行:寻找匹配`" '时出现意外的EOF
bash: -c: 第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
,这将告诉你在第四个参数中有一个普通的'
在'{…}'
中。你可能需要使用"airflow variables --set my_var '{\"test\": \"test'"\\\'"'2\"}'"
,它会给出airflow variables --set my_var '{"test": "test'\''2"}'
,这意味着第四个参数为{"test": "test'2"}
。 - dlamblin