Этот вопрос, кажется, путает аргументы оболочки с командой read
. Они разные:
Оболочка:
set -- foo bar baz buzz zap bang ; echo $2
Выводится только второе слово:
bar
Команда read
с двумя именами переменных:
echo foo bar baz buzz zap bang | (read x y ; echo $y )
Выводит все, включая второе слово и дальше:
bar baz buzz zap bang
Вы можете использовать имя функции в качестве аргумента:
if [[ $force == "y" ]] ; then
USE=cmd_force
else
echo "Call this with the -f option in case of: error: Your local changes to... files would be overwritten by merge"
USE=cmd_nice
fi
export -f $USE
find. -mindepth 2 -maxdepth 2 -name PKGBUILD -execdir bash -c $USE' {}' \;