[Nix-dev] Escape ${ in multiline string

Bjørn Forsman bjorn.forsman at gmail.com
Tue Dec 29 13:22:13 CET 2015


On 29 December 2015 at 13:05, 4levels <4levels at gmail.com> wrote:
> Hi Nix Devs,
>
> I'm currently struggling to create a bash script within a nix multiline
> string, terminted by double single quotes.
>
> In the bash script, I need to put ${} statements but this is throwing
> compile errors (Undefined variable error).  I've tried escaping the $ sign
> with a backslash, but that doesn't help.  I also tried escaping with a
> double backslash, same result.
>
> Any ideas? Should I rewrite the bash script to not use the ${ statements?
>
> Kind regards,
>
> code example
>       s3Backup = name:
>       ''
>         ...
>         DAILYLOGFILE="/var/log/duplicity/backup.log"
>         ...
>         # Clear the old daily log file
>         cat /dev/null > ${DAILYLOGFILE}  // -> compile error: undefined
> variable DAILYLOGFILE
>         ...
>       '';

Try with two single quotes in front of ${DAILYLOGFILE}:

  ''${DAILYLOGFILE}

It is documented here, in the "simple values" section:

  http://nixos.org/nix/manual/#ssec-values

Best regards,
Bjørn Forsman


More information about the nix-dev mailing list