2017-10-19 207 views
0

我真的试图在下列方式使用泊坞窗CLI命令添加变量:逃生撇号

docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test\'2\"}'" 

但是,得到以下错误:

bash: -c: line 0: unexpected EOF while looking for matching `"'

bash: -c: line 1: syntax error: unexpected end of file

我没有任何错误,如果做一个

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”值中避免撇号以避免错误?

回答

1

bash单引号字符串不能包含单引号。你无法逃避它。 (REF https://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes

试试这个:

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

我编号匹配的单引号的字符串。中间是一个字面的单引号。