¿Cómo pasar argumentos por linea de comandos a un script de Bash?

Ejemplo para el caso en que los argumentos sean cadenas de texto:

#!/bin/sh
for i in "$@"
do echo "$i"
done

En la llamada al script las cadenas de texto deben entrecomillarse para que las entienda como un único argumento:

./sh uno dos "tres cuatro es un solo argumento"