LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Whats up with this basic script?? (https://www.linuxquestions.org/questions/linux-newbie-8/whats-up-with-this-basic-script-762562/)

fusion1275 10-17-2009 09:50 AM

Can you guys post where your "sh" is pointing to please. Seems mine isn't correct if going by the posts on here.

r3sistance 10-17-2009 10:57 AM

It depends on what Distribution you are using, most /bin/sh should refer to bash, however for debian based distributions it should be /bin/dash (A debian specific shell, I believe based on ash)

fbsduser 10-17-2009 12:35 PM

Quote:

Originally Posted by fusion1275 (Post 3722758)
Can you guys post where your "sh" is pointing to please. Seems mine isn't correct if going by the posts on here.

Your "sh" symlink points to a shell called dash. You might want to remove that symlink and create a new one pointing to bash.

fusion1275 10-19-2009 07:11 AM

So does that mean that Ubuntu is set up incorrectly?

Shouldn't it default to the bash shell?

pwc101 10-19-2009 07:17 AM

Quote:

Originally Posted by fbsduser (Post 3722886)
Your "sh" symlink points to a shell called dash. You might want to remove that symlink and create a new one pointing to bash.

This is a bad idea. All sorts of things might break. Please don't do this.

@OP: The situation you have is "correct" for Debian based systems.

fusion1275 10-19-2009 07:22 AM

Yeah thought changing it would be a bad idea!!

So any ideas why I get errors and some dont? Seems to depend on what distro they are using now doesnt it??

Lordandmaker 10-19-2009 07:31 AM

Quote:

Originally Posted by fusion1275 (Post 3724795)
So any ideas why I get errors and some dont? Seems to depend on what distro they are using now doesnt it??

For some people, sh is a link to /bin/bash and for the debianites its /bin/dash.

Dash is a debian-developed shell which is being used where the features of bash aren't needed, and speed and simplicity are. There's been warnings for a while that scripts with bashims need a /bin/bash shebang, not a /bin/sh.

So the difference is down to the fact that, even though they're invoking them the same way, some people are running
Code:

/bin/bash -x
, and others are running
Code:

/bin/dash -x
, and these are different shells.

rn_ 10-19-2009 07:43 AM

hmm... OP used #!/bin/bash. I wonder why that didn't take effect.

GazL 10-19-2009 09:27 AM

Quote:

Originally Posted by rn_ (Post 3724809)
hmm... OP used #!/bin/bash. I wonder why that didn't take effect.

because he was explicitly telling it to use 'sh' on the command line when he invoked it.

rn_ 10-19-2009 10:22 AM

Quote:

Originally Posted by GazL (Post 3724902)
because he was explicitly telling it to use 'sh' on the command line when he invoked it.

hm... i guess my understanding of the 'shebang' was incorrect. I always thought it was used to override whatever the invoking shell may be.

hey, this is the second new thing i have learned today.

Thanks.

fusion1275 10-19-2009 10:26 AM

Well looks like my little issue has become into a lesson. I shall make a note of this.


All times are GMT -5. The time now is 02:04 PM.