* bash scripts in Guix question
@ 2022-10-04 13:18 jordi
2022-10-04 14:10 ` Ekaitz Zarraga
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: jordi @ 2022-10-04 13:18 UTC (permalink / raw)
To: help-guix
Hi guixers,
i'm wondering...for my scripts to work in Guix, instead of
'#! /bin/bash' ,
what do i have to start them with ?
Thanks,thanks, thanks
F
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-04 13:18 bash scripts in Guix question jordi
@ 2022-10-04 14:10 ` Ekaitz Zarraga
2022-10-04 14:31 ` Fulbert
2022-10-04 14:38 ` Olivier Dion via
2 siblings, 0 replies; 10+ messages in thread
From: Ekaitz Zarraga @ 2022-10-04 14:10 UTC (permalink / raw)
To: jordi; +Cc: help-guix
Hi,
> Hi guixers,
>
> i'm wondering...for my scripts to work in Guix, instead of
> '#! /bin/bash' ,
>
> what do i have to start them with ?
>
> Thanks,thanks, thanks
>
> F
We have a link to bash located in /bin/sh so you can just leave /bin/sh. Or you can also use `#!/usr/bin/env bash`
Both should work.
Cheers,
Ekaitz
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-04 13:18 bash scripts in Guix question jordi
2022-10-04 14:10 ` Ekaitz Zarraga
@ 2022-10-04 14:31 ` Fulbert
2022-10-04 14:38 ` Olivier Dion via
2 siblings, 0 replies; 10+ messages in thread
From: Fulbert @ 2022-10-04 14:31 UTC (permalink / raw)
To: help-guix
Le Tue, Oct 04, 2022 at 03:18:36PM +0200, jordi a écrit :
> Hi guixers,
Hello!
>
> i'm wondering...for my scripts to work in Guix, instead of
> '#! /bin/bash' ,
>
> what do i have to start them with ?
#!/usr/bin/env bash
And if you need to pass arguments/options, take a look at
$ info '(coreutils) env invocation'
> Thanks,thanks, thanks
Welcome!
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-04 13:18 bash scripts in Guix question jordi
2022-10-04 14:10 ` Ekaitz Zarraga
2022-10-04 14:31 ` Fulbert
@ 2022-10-04 14:38 ` Olivier Dion via
2022-10-05 3:38 ` Maxim Cournoyer
2 siblings, 1 reply; 10+ messages in thread
From: Olivier Dion via @ 2022-10-04 14:38 UTC (permalink / raw)
To: jordi, help-guix
On Tue, 04 Oct 2022, jordi <jordila@librebits.info> wrote:
> Hi guixers,
>
> i'm wondering...for my scripts to work in Guix, instead of
> '#! /bin/bash' ,
>
Typically the `sh' program should be a symlinked to `bash' in your
system profile. I think it is the case for many distro. If you want it
to be bulletproof though for other distros maybe something like that:
--8<---------------cut here---------------start------------->8---
#!/bin/sh
if [ "$(basename $SHELL)" != "bash" ]; then
exec bash "$0" "$@"
fi
echo "hey!"
--8<---------------cut here---------------end--------------->8---
--
Olivier Dion
oldiob.dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-04 14:38 ` Olivier Dion via
@ 2022-10-05 3:38 ` Maxim Cournoyer
2022-10-05 3:58 ` Olivier Dion via
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2022-10-05 3:38 UTC (permalink / raw)
To: Olivier Dion via; +Cc: jordi, Olivier Dion
Hi,
Olivier Dion via <help-guix@gnu.org> writes:
> On Tue, 04 Oct 2022, jordi <jordila@librebits.info> wrote:
>> Hi guixers,
>>
>> i'm wondering...for my scripts to work in Guix, instead of
>> '#! /bin/bash' ,
>>
>
> Typically the `sh' program should be a symlinked to `bash' in your
> system profile. I think it is the case for many distro. If you want it
> to be bulletproof though for other distros maybe something like that:
>
> #!/bin/sh
> if [ "$(basename $SHELL)" != "bash" ]; then
> exec bash "$0" "$@"
> fi
>
> echo "hey!"
I prefer the "#!/usr/bin/env bash" shebang; /usr/bin/env is available on
FHS distribution, and on Guix System, for convenience. You can use if
for any interpreted script, such as Guile, Python, Perl, etc.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-05 3:38 ` Maxim Cournoyer
@ 2022-10-05 3:58 ` Olivier Dion via
2022-10-05 9:48 ` bash scripts in Guix question - suspend ? jordi
2022-10-06 0:43 ` bash scripts in Guix question Maxim Cournoyer
0 siblings, 2 replies; 10+ messages in thread
From: Olivier Dion via @ 2022-10-05 3:58 UTC (permalink / raw)
To: Maxim Cournoyer, Olivier Dion via; +Cc: jordi
On Tue, 04 Oct 2022, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
> Hi,
>
> Olivier Dion via <help-guix@gnu.org> writes:
>
>> On Tue, 04 Oct 2022, jordi <jordila@librebits.info> wrote:
>>> Hi guixers,
>>>
>>> i'm wondering...for my scripts to work in Guix, instead of
>>> '#! /bin/bash' ,
>>>
>>
>> Typically the `sh' program should be a symlinked to `bash' in your
>> system profile. I think it is the case for many distro. If you want it
>> to be bulletproof though for other distros maybe something like that:
>>
>> #!/bin/sh
>> if [ "$(basename $SHELL)" != "bash" ]; then
>> exec bash "$0" "$@"
>> fi
>>
>> echo "hey!"
>
> I prefer the "#!/usr/bin/env bash" shebang; /usr/bin/env is available on
> FHS distribution, and on Guix System, for convenience. You can use if
> for any interpreted script, such as Guile, Python, Perl, etc.
Only if coreutils is in the profile that would work yes.
--
Olivier Dion
oldiob.dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question - suspend ?
2022-10-05 3:58 ` Olivier Dion via
@ 2022-10-05 9:48 ` jordi
2022-10-05 10:29 ` Tobias Geerinckx-Rice
2022-10-06 0:43 ` bash scripts in Guix question Maxim Cournoyer
1 sibling, 1 reply; 10+ messages in thread
From: jordi @ 2022-10-05 9:48 UTC (permalink / raw)
To: help-guix
Thank you all for your warm welcome and answers to my questions.
I'm trying to adapt this script
[..]
Suspend)
~/.config/i3/i3exit suspend
[..]
to my new Guix environment,
in my first iteration,
[..]
Suspend)
~/.config/i3/i3exit loginctl suspend
[..]
replacing prepending loginctl leads to unsuccesful results, for now.
I'm puzzled, as long as 'loginctl suspend' is working in the shell ,
What am i missing ?
Thanks, thanks, thanks
On 2022-10-04 23:58:05, Olivier Dion via wrote:
> On Tue, 04 Oct 2022, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
> > Hi,
> >
> > Olivier Dion via <help-guix@gnu.org> writes:
> >
> >> On Tue, 04 Oct 2022, jordi <jordila@librebits.info> wrote:
> >>> Hi guixers,
> >>>
> >>> i'm wondering...for my scripts to work in Guix, instead of
> >>> '#! /bin/bash' ,
> >>>
> >>
> >> Typically the `sh' program should be a symlinked to `bash' in your
> >> system profile. I think it is the case for many distro. If you want it
> >> to be bulletproof though for other distros maybe something like that:
> >>
> >> #!/bin/sh
> >> if [ "$(basename $SHELL)" != "bash" ]; then
> >> exec bash "$0" "$@"
> >> fi
> >>
> >> echo "hey!"
> >
> > I prefer the "#!/usr/bin/env bash" shebang; /usr/bin/env is available on
> > FHS distribution, and on Guix System, for convenience. You can use if
> > for any interpreted script, such as Guile, Python, Perl, etc.
>
> Only if coreutils is in the profile that would work yes.
>
> --
> Olivier Dion
> oldiob.dev
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question - suspend ?
2022-10-05 9:48 ` bash scripts in Guix question - suspend ? jordi
@ 2022-10-05 10:29 ` Tobias Geerinckx-Rice
0 siblings, 0 replies; 10+ messages in thread
From: Tobias Geerinckx-Rice @ 2022-10-05 10:29 UTC (permalink / raw)
To: help-guix, jordi
Hi jordi,
>I'm puzzled, as long as 'loginctl suspend' is working in the shell
But '~/.config/i3/i3exit loginctl suspend' isn't.
Judging by your original snippet, you've mashed two commands together: you meant either
~/.config/i3/i3exit suspend
or
loginctl suspend
But nobody here can tell you for certain how to call your 'i3exit' script without knowing what's in it.
Aside: you seem to be writing a wrapper script to wrap a wrapper script to call a wrapper for writing to /proc. Is that necessary? It can make things hard to follow.
Kind regards,
T G-R
Sent on the go. Excuse or enjoy my brevity.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-05 3:58 ` Olivier Dion via
2022-10-05 9:48 ` bash scripts in Guix question - suspend ? jordi
@ 2022-10-06 0:43 ` Maxim Cournoyer
2022-10-06 0:56 ` Olivier Dion via
1 sibling, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2022-10-06 0:43 UTC (permalink / raw)
To: Olivier Dion; +Cc: Olivier Dion via, jordi
Hi,
Olivier Dion <olivier.dion@polymtl.ca> writes:
[...]
>> I prefer the "#!/usr/bin/env bash" shebang; /usr/bin/env is available on
>> FHS distribution, and on Guix System, for convenience. You can use if
>> for any interpreted script, such as Guile, Python, Perl, etc.
>
> Only if coreutils is in the profile that would work yes.
coreutils doesn't need to be in the profile since /usr/bin/env is linked
to (file-append coreutils "bin/env"); see in the value of %base-services
in (gnu services base), which contains:
--8<---------------cut here---------------start------------->8---
(service special-files-service-type
`(("/bin/sh" ,(file-append bash "/bin/sh"))
("/usr/bin/env" ,(file-append coreutils "/bin/env"))))
--8<---------------cut here---------------end--------------->8---
'env' looks up the command passed to it from PATH, but that's usually
satisfied if you were going to use a FHS location anyway such as
"/bin/bash".
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: bash scripts in Guix question
2022-10-06 0:43 ` bash scripts in Guix question Maxim Cournoyer
@ 2022-10-06 0:56 ` Olivier Dion via
0 siblings, 0 replies; 10+ messages in thread
From: Olivier Dion via @ 2022-10-06 0:56 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: Olivier Dion via, jordi
On Wed, 05 Oct 2022, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
> Hi,
>
> Olivier Dion <olivier.dion@polymtl.ca> writes:
>
> [...]
>
>>> I prefer the "#!/usr/bin/env bash" shebang; /usr/bin/env is available on
>>> FHS distribution, and on Guix System, for convenience. You can use if
>>> for any interpreted script, such as Guile, Python, Perl, etc.
>>
>> Only if coreutils is in the profile that would work yes.
>
> coreutils doesn't need to be in the profile since /usr/bin/env is linked
> to (file-append coreutils "bin/env"); see in the value of %base-services
> in (gnu services base), which contains:
>
> --8<---------------cut here---------------start------------->8---
> (service special-files-service-type
> `(("/bin/sh" ,(file-append bash "/bin/sh"))
> ("/usr/bin/env" ,(file-append coreutils "/bin/env"))))
> --8<---------------cut here---------------end--------------->8---
Oh interesting I did not know that. Thank you!
--
Olivier Dion
oldiob.dev
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-10-06 0:57 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-04 13:18 bash scripts in Guix question jordi
2022-10-04 14:10 ` Ekaitz Zarraga
2022-10-04 14:31 ` Fulbert
2022-10-04 14:38 ` Olivier Dion via
2022-10-05 3:38 ` Maxim Cournoyer
2022-10-05 3:58 ` Olivier Dion via
2022-10-05 9:48 ` bash scripts in Guix question - suspend ? jordi
2022-10-05 10:29 ` Tobias Geerinckx-Rice
2022-10-06 0:43 ` bash scripts in Guix question Maxim Cournoyer
2022-10-06 0:56 ` Olivier Dion via
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).