bashsh

Force word splitting for fallback value in sh/bash


I want use complex command as fallback value, something like this, but do not treat ls -sh as single string.

"${@:-ls -sh}"

Solution

  • Try

    [ -n "${@:+X}" ] || set -- ls -sh
    "$@"