Reini Urban wrote:

Geoffrey KRETZ schrieb:

I've got a problem with a shell script used with Cygwin 1.5.10-3 on W2000 SP4 and W XP SP 2.

The following part of code works on all the Unix I've tested (HP-UX/AIX/Sun Solaris/Linux).

With Cygwin,  it doesn't :(


*Code:*

cmd="long shell command with differents parameters"
if [ ! eval $cmd ]; then
 echo "Error : $cmd"
 exit 1
fi



instead of eval $cmd, i've tried :
- `eval $cmd`
- eval `$cmd`
- $cmd
- `$cmd`

I've also try with a function without more success.

*Code:*

execCmd()
{
 eval $cmd
 return $?
}

cmd="long shell command with differents parameters"
if [ ! execCmd ]; then
 echo "Error : $cmd"
 exit 1
fi



The only way I've find is :

*Code:*

cmd="long shell command with differents parameters"
eval $cmd
if [ $? -ne 0 ]; then
 echo "Error : $cmd"
 exit 1
fi

Is it possible to make it work like the two first exemple or I'm obliged to use the third solution ?


FAQ: http://cygwin.com/faq/faq_3.html#SEC43
cygwin's /bin/sh is ash, on most other platforms it is /bin/bash.

If you want it to behave it exactly like on other platforms, and you use
bash specific constructs, use the /bin/bash shebang.

If I specified "#! /bin/bash" at the first line of my shell script, is it enough to make Cygwin understand that I want to use bash instead of ash ??

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



Reply via email to