Writing portable shell script is a little hard, but I've found a good approach is to make something ancient like pdksh a symlink for /bin/sh and even /bin/bash - typically in a small VM. This makes it much more likely that your code will work without big changes on AIX, BSDs, etc. The other way is to use dash, not BusyBox ash, as BusyBox ash includes a few bashisms depending on the configure options at build time.

If you're looking for cross-script ways of solving problems, then feel free to nab implementations from my shellfire repo (https://github.com/shellfire-dev/shellfire et al).


On 19 May 2015 at 21:52, Alex Dowad <alexinbeijing@gmail.com> wrote:
> configure already uses its own echo definition

> so ash's echo should not be used

> how did the config script end up calling ash's echo?

OK, thanks for pointing this out. I shouldn't have said that the problem was
with ash's echo.

The original configure script worked when I ran it on Linux Mint + bash, and didn't
work on Alpine Linux + BusyBox ash. I didn't notice echo() in the configure script,
did some experimentation with bash's echo and ash's, found a difference which seemed
to explain the observed problem, and worked around it.

Now it looks like the issue was something else. I can't seem to duplicate the problem
right this moment; however, the configure script as it is right now works on both
platforms.

Mysteries, mysteries...

AD