On Wednesday 27 June 2018 06:39 PM, K K Subbu wrote:

The double quotes are required here to skip splitting arguments with embedded spaces into different words.

I suspect the error is earlier in the image=$@ assignment. This requires double quotes. Double quotes are also required while calling zenity to avoid word splitting.

My earlier fix is also in error, Sorry!

Essentially, we are mixing up single value variable (image) with argument array ($@). I found a cleaner fix :

````
if [ $# -eq 0 ]; then
        image_count=`ls "$RESOURCES"/*.image 2>/dev/null |wc -l`
        if [ "$image_count"  -eq 1 ]; then
                set -- "$RESOURCES"/*.image
        elif which zenity &>/dev/null; then
set -- "$(zenity --title 'Select an image' --file-selection --filename "$RESOURCES/" --file-filter '*.image' --file-
filter '*')"
        else
                set -- "$RESOURCES/Pharo6.1-64.image"         
        fi
fi

# execute
exec "$LINUX/pharo" \
        --plugins "$LINUX" \
        --encoding utf8 \
        -vm-display-X11 \
        "$@"
````

HTH .. Subbu

Reply via email to