En realidad esos ejemplos de sintaxis no son "BIEN" y "MAL", sino "MAL" y "FATAL".
Una de las cosas más básicas que se debe aprender en la programación, sobre todo al desarrollar y/o trabajar con aplicaciones command-line (o en el scripting en general), es que el caracter delimitador de argumentos es el espacio en blanco (" "), por ende, si escribes argumentos (en este caso, un nombre de archivo) con espacios en blanco, cada palabra será interpretado como parámetros adicionales... (lo que puede provocar un error de sintaxis) y para evitar eso los argumentos con espacios en blanco deben ser encerrados utilizando el símbolo de apertura y cierre de argumento, usualmente las comillas dobles. De hecho, todos los argumentos que le envies a una aplicación command-line deberías encerrarlos, contengan espacios en blanco o no, para seguir buenos hábitos de programación y prevenir un fallo humano.
BIEN:
"youtube-dl.exe" -x --audio-format "mp3" "http://youtube.com/link" -o "nombre de archivo con o sin espacios.mp3"
Por las razones que he explicado arriba, tu pregunta está mal enfocada, ya que lo que realmente deberías hacer no es intentar evitar escribir espacios, sino justamente lo contrario...
Hace muchos años que no uso Bash/Linux, no recuerdo como se hace esto, pero yo supongo que si le añades unas comillas simples se conseguirá el efecto deseado, y la variable se expandirá, así que prueba a ver si así te funciona así:
youtube-dl -x --audio-format mp3 $fuente -o '$nombre'
...o quizás así:
youtube-dl -x --audio-format mp3 $fuente -o "$nombre"
...y si no funciona, entonces tienes a Google para preguntarle como expandir una variable escrita dentro de comillas... o una solución similar.
Saludos.
Agradezco la aclaración y la respuesta, por desgracia youtube-dl no permite la incorporacion de " " fue lo primero que intenté ( poner la linea como la planteas)
Por otra parte de aber encontrado la respuesta en Google no abría preguntado en un foro, de ser por eso cerremos los foros y no preguntemos nada ya que siempre te dicen que busques en google .
Al final de todo tuve que proporcionar otra solución. te dejo el codigo final que use para que lo revisen y hechen mano si a alguien le sirve
echo -e "\e[35m NOTA 1 : NO PONER VIDEOS DIRECTO DE UNA LISTA DE REPRODUCCIÓN \e[0m"
echo " "
echo -e "\e[33m NOTA 2 : RECUERDA PONER EL NOMBRE DEL ARTISTA Y TEMA \e[0m"
echo " "
echo -e "\e[35mANTES DEBES CREAR LA CARPETA DONDE DESCARGARÁ LA MUSICA\e[0m"
read -p 'Introduce el nombre de la Carpeta a crear: ' carpeta
echo " "
mkdir "$carpeta"
cd "$carpeta"
sleep 3
function Descarga {
echo " "
read -p 'INTRODUCE LINK DE YOUTUBE: ' fuente
echo " "
echo -e "\e[0;33mPONE EL NOMBRE DEL AUTOR Y EL TEMA (EJEMPLO : Mägo de oz - El lago)\e[0m"
echo " "
read -p 'NOMBRE Y TITULO: ' nombre
echo " "
}
while true
do
Descarga
echo " "
echo -e "\e[33m ########################################################## \e[0m "
echo -e "\e[33m # BUSCANDO LA CANCIÓN SELECCIONADA NO CIERRE LA VENTANA #\e[0m "
echo -e "\e[33m ########################################################## \e[0m "
echo -e " "
youtube-dl -x --audio-format mp3 $fuente -o youtube.mp3
echo ""
echo -e "\e[31mRenombrando la pista por el nombre puesto por usted\e[0m"
echo " "
sleep 4
mv youtube.mp3 "$nombre.mp3"
echo -e "\e[0;33mDESCARGA TERMINADA- INTRODUCE OTRO ZELDA O CIERRA LA VENTANA. PIRATA DE *****\e[0m"
done