Назад | Перейти на главную страницу

Как экранирование переменной systemctl работает в оболочке?

Я хочу выполнить пакетную работу с 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 не может быть найден.

Как заставить работать этот код переменной?

попробуйте что-то вроде ниже

n=5;systemctl status v2ray-haproxy@{1..$(seq 1 $n)}