Skip to contentSkip to conversation

Script with 'if run' don't work as expected

U-Boot Stefan Herbrechtsmeier 2 participants 2 messages May 21, 2014 – May 22, 2014

lore
Share & tools
lore
#0 lore raw

Hi,

a script with 'if run' don't work as expect. I have test it on an omap3_overo board.

The following script always prints true:
setenv testcmd false; if run testcmd; then echo "true"; fi;

This could be fixed by reverting commit 1992dbfdb9886c3dfc4a505091895c851f736f3a:
Make 'run' use run_command_list() instead of run_command()

Kind regards,
Stefan

#1 lore raw

Hi Stefan,

Quoted 11 lines · Stefan Herbrechtsmeier

Hi,

a script with 'if run' don't work as expect. I have test it on an omap3_overo board.

The following script always prints true:
setenv testcmd false; if run testcmd; then echo "true"; fi;

This could be fixed by reverting commit 1992dbfdb9886c3dfc4a505091895c851f736f3a:
Make 'run' use run_command_list() instead of run_command()

I can repeat this with sandbox:

$ ./b/sandbox/u-boot -c "setenv testcmd false; if run testcmd; then
echo true; fi;"

U-Boot 2014.07-rc1-00097-g169b1f8 (May 21 2014 - 19:46:07)

DRAM: 128 MiB
Using default environment

In:    serial
Out:   lcd
Err:   lcd

true

However although that commit provoked the problem I don't think it is the root cause. It seems that hush loses the return code when asked to execute a sequence of commands. In looking at this I've found several related problems so I'll put a series together and send it out for review.

Regards,
Simon