Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zsh will not run scripts as /bin/bash even with #!/bin/bash as the first line



The shell, whether zsh or bash, does not pay any attention to the shebang
line. That is done by the operating system kernel. That is, when you
execute a shell script the OS notices that the file is a plain text file
with a "#!" signature and launches the named program to interpret its
contents.

You cannot reasonably expect exported functions to work across different
shells. Put the function in a script file and reference that as your
argument to the parallel command.

On Sat, Nov 24, 2012 at 5:07 PM, John <da_audiophile@xxxxxxxxx> wrote:

> Been using zsh for a while now and loving it.  I ran into a problem today.
>  The following script errors out if run with zsh as my default shell:
>
> #!/bin/bash
> v_build() {
>
> echo "The file is $1"
> }
>
> export -f v_build
> find . -maxdepth 1 -type f | parallel v_build
>
> Output:
> % ./test
> zsh:1: command not found: v_build
> zsh:1: command not found: v_build
> zsh:1: command not found: v_build
> zsh:1: command not found: v_build
>
> If I switch to a user who has bash as its default shell, the same script
> runs just fine:
>
> $ ./test
> The file is ./test
> The file is ./01.jpg
> The file is ./02.jpg
> The file is ./03.jpg
>
> Love to understand what I have incorrectly configured.  It seems like zsh
> is ignoring the shebang telling it to use /bin/bash as the shell to run the
> script.
>



-- 
Kurtis Rader
Caretake of the exceptional canines Junior and Chino


Messages sorted by: Reverse Date, Date, Thread, Author