Bash docker命令中的转义撇号
我尝试使用docker CLI命令以以下方式添加变量: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 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