Como urlencode dados para o comando curl?

Estou tentando escrever um script bash para teste que usa um parâmetro e o envia através de curl para o site. Preciso codificar o valor do URL para garantir que os caracteres especiais sejam processados corretamente. Qual é a melhor maneira de fazer isso?

Aqui está o meu script básico até agora:

#!/bin/bash
host=${1:?'bad host'}
value=$2
shift
shift
curl -v -d "param=${value}" http://${host}/somepath $@

questionAnswers(30)

yourAnswerToTheQuestion