Atribuindo a um parâmetro posicional

Como posso atribuir um valor a um parâmetro posicional no Bash? Eu quero atribuir um valor a um parâmetro padrão:

if [ -z "$4" ]; then
   4=$3
fi

Indicando que 4 não é um comando.