Val*_*kov 3 bash escaping docker airflow apache-airflow
我正在尝试通过以下方式使用 docker CLI 命令添加变量:
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test\'2\"}'"
Run Code Online (Sandbox Code Playgroud)
但收到以下错误:
bash: -c: line 0: 寻找匹配的‘"’时出现意外的 EOF
bash: -c: 第 1 行:语法错误:文件意外结束
如果执行以下命令之一,我没有任何错误:
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test\`2\"}'"
Run Code Online (Sandbox Code Playgroud)
或者
docker exec -u root airflowdags_webserver_1 bash -c "airflow variables --set my_var '{\"test\": \"test2\"}'"
Run Code Online (Sandbox Code Playgroud)
如何在“test'2”值中转义撇号以避免错误?
bash 单引号字符串不能包含单引号。你无法逃脱它。(参考 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
Run Code Online (Sandbox Code Playgroud)
我对匹配的单引号字符串进行了编号。中间是文字单引号。
| 归档时间: |
|
| 查看次数: |
3872 次 |
| 最近记录: |