Creo que esto hace lo que quieres. Pondrá todos los argumentos en una cadena, separados por espacios, con comillas simples alrededor de todos:
str="'$*'"
$*produce todos los argumentos de los scripts separados por el primer carácter de los $IFScuales, por defecto, es un espacio.
Dentro de una cadena con comillas dobles, no hay necesidad de escapar de comillas simples.
Ejemplo
Pongamos lo anterior en un archivo de script:
$ cat script.sh
#!/bin/sh
str="'$*'"
echo "$str"
Ahora, ejecute el script con ejemplos de argumentos:
$ sh script.sh one two three four 5
'one two three four 5'
Este script es POSIX. Funcionará con bashpero no requiere bash.
Una variación: concatenando con barras en lugar de espacios
Podemos cambiar de espacios a otro personaje ajustando IFS:
$ cat script.sh
#!/bin/sh
old="$IFS"
IFS='/'
str="'$*'"
echo "$str"
IFS=$old
Por ejemplo:
$ sh script.sh one two three four
'one/two/three/four'