[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: unexpected script output



Nelson Green grabbed a keyboard and wrote:
> 
> Good morning,
> 
> Can anyone help me understand why the following two console commands each
> produce output, but only one of them produces output when both are called in a
> shell script?
> 
> $ /bin/echo "Shell: $SHELL"
> Shell: /bin/bash
> $ /bin/echo "Random: $RANDOM"
> Random: 29707
> 
> $ cat output.sh
> #!/bin/sh
> /bin/echo "Shell: $SHELL"
> /bin/echo "Random: $RANDOM"
> 
> $ sh output.sh
> Shell: /bin/bash
> Random:
> 
> Why is there no output from the call to $RANDOM in the script?

'Cause /bin/sh points to dash, not bash, in Debian.

$ ls -la /bin/sh
lrwxrwxrwx 1 root root 4 Nov 20 07:44 /bin/sh -> dash*

Change your shebang line to #!/bin/bash to make it work right and then
set the executable bit on the script.  Then you can just do ./output.sh
to get the expected results (don't do "sh output.sh," since that will
just invoke /bin/sh which points you back to dash).

           --Dave


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: