Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash docker命令中的转义撇号_Bash_Docker_Escaping_Airflow_Apache Airflow - Fatal编程技术网

Bash docker命令中的转义撇号

Bash docker命令中的转义撇号,bash,docker,escaping,airflow,apache-airflow,Bash,Docker,Escaping,Airflow,Apache Airflow,我尝试使用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 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\"}'"


如何在“test'2”值中转义撇号以避免错误?

bash单引号字符串不能包含单引号。您不能转义它。(参考 )

试试这个:

bash -c  "airflow variables --set my_var '{\"test\": \"test'\''2\"}'"
# .......................................1.................1..2....2

我对匹配的单引号字符串进行了编号。中间是一个文字单引号。

对于版本3,您可以指定一个命令数组

所以如果你
printf X“气流变量-设置我的变量”{“test\”:“test'2\”}'X\\n
你将得到
Xairflow变量-设置我的变量”{“test”:“test'2”}'X
这将显示在arg 4中,
{…}
内有一个普通的
。你可能需要
“气流变量-设置我的变量”{“test code>:\“test'\\''''''''2\'}'
它给出了
气流变量——设置my_var'{“test”:“test'\''2}'
这意味着arg 4=
{“test”:“test'2}
bash -c  "airflow variables --set my_var '{\"test\": \"test'\''2\"}'"
# .......................................1.................1..2....2