2017-10-19 450 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 

我編號匹配的單引號的字符串。中間是一個字面的單引號。