![systemctl 变量转义在 shell 中如何工作?](https://linux22.com/image/750019/systemctl%20%E5%8F%98%E9%87%8F%E8%BD%AC%E4%B9%89%E5%9C%A8%20shell%20%E4%B8%AD%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我想要使用 systemctl 执行批处理作业,例如:
systemctl status v2ray-haproxy@{1..5}
没问题。但是当我将 5 更改为变量时:
n=5;systemctl status v2ray-haproxy@{1..$n}
现在无法工作,并且出现错误:
无效的单元名称“v2ray-haproxy@{1..5}”被转义为“v2ray-haproxy@\x7b1..5\x7d”(也许您应该使用 systemd-escape?)无法找到单元 v2ray-haproxy@\x7b1..5\x7d.service。
如何让这个变量代码起作用?
答案1
尝试下面的方法
n=5;systemctl status v2ray-haproxy@{1..$(seq 1 $n)}