From 2ed7a221fafb25eea937c4e86fb88ee501dba51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 4 Apr 2023 21:18:33 +0200 Subject: run: expand variables also with --scope This makes syntax be the same for commands which are started by the manager and those which are spawned directly (when --scope is used). Before: $ systemd-run -q -t echo '$TERM' xterm-256color $ systemd-run -q --scope echo '$TERM' $TERM Now: $ systemd-run -q --scope echo '$TERM' xterm-256color Previous behaviour can be restored via --expand-environment=no: $ systemd-run -q --scope --expand-environment=no echo '$TERM' $TERM Fixes #22948. At some level, this is a compat break. Fortunately --scope is not very widely used, so I think we can get away with this. Having different syntax depending on whether --scope was used or not was bad UX. A NEWS entry will be required. --- man/systemd-run.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'man') diff --git a/man/systemd-run.xml b/man/systemd-run.xml index f33190f4c5..73adbfb927 100644 --- a/man/systemd-run.xml +++ b/man/systemd-run.xml @@ -177,11 +177,12 @@ - Expand environment variables in command arguments. If enabled (the default), the - service manager that spawns the actual command will expand variables specified as - ${VARIABLE} in the same way as in commands specied via - ExecStart= in units. Note that this is similar to, but not the same as variable - expansion in + Expand environment variables in command arguments. If enabled (the default), + environment variables specified as ${VARIABLE} will be + expanded in the same way as in commands specified via ExecStart= in units. With + --scope, this expansion is performed by systemd-run itself, and + in other cases by the service manager that spawns the command. Note that this is similar to, but not + the same as variable expansion in bash1 and other shells. -- cgit v1.2.1