本文介绍了系统字符串转义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
限时送ChatGPT账号..如果我运行这个命令
/bin/bash -c 'while true;do /usr/bin/etcdctl set my-container "{\"host\": \"1\", \"port\": $(/usr/bin/docker port my-container 5000 | cut -d":" -f2)}" --ttl 60;sleep 45;done'
我从 etcd 得到了我所期望的 {"host":"1", "port":49155}
I get back from etcd what I expect {"host":"1", "port":49155}
但是如果我把它放在一个 systemd 文件中
But if I put it in a systemd file
ExecStart=/bin/bash -c 'while true;do /usr/bin/etcdctl set my-container "{\"host\": \"1\", \"port\": $(/usr/bin/docker port my-container 5000 | cut -d":" -f2)}" --ttl 60;sleep 45;done'
我回来了 {host:1, port:49155}
I get back {host:1, port:49155}
知道为什么文件内部的转义不同吗?我该如何解决?谢谢!!
Any idea of why the escaping is different inside of the file? How can I fix it? Thanks!!
推荐答案
systemd-escape '\"a fun thing"\'
输出:\x5c\x22a\x20fun\x20thing\x22\x5c
[Service]
ExecStart=/bin/sh -c 'echo "\x5c\x22a\x20fun\x20thing\x22\x5c"'
将打印一个有趣的东西
这篇关于系统字符串转义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论