On 5/4/19 8:29 PM, zna...@disroot.org wrote: > I just want to change user shell. So i know how to do it. And you have > cleared a bit for me what is formed object and what is file, and what is > file-append function. > > May 4, 2019 11:24 AM, "rendaw" <7e9wc56emja...@s.rendaw.me> wrote: > >> On 5/4/19 8:19 PM, zna...@disroot.org wrote: >> >>> (shell #~#$dash) -- compiles too, but again: >>> >>> bob $ su - mom >>> Password: >>> /gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2: >>> /gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2: Is a directory >>> bob $ >> Could you perhaps provide some details on what you are expecting to >> happen here? This error is expected - shell needs a path to an >> executable, not a directory. Both `#~#$dash` and `dash` become paths to >> directories.
(file-append obj "some string") is a convenient alternative to #~(string-append #$obj "some string"). In the latter "obj" becomes (for example) "/gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2", and "(string-append ...)" combines "/gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2" and "/bin/dash" to produce "/gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2/bin/dash"