(Nota: después de investigar un poco más tengo una respuesta parcial, pero no me gusta tener que escribir los comandos reales contra esa variable de manera diferente dependiendo de los espacios incrustados o no. Aceptaré mejores sugerencias) .
Me gusta almacenar varias variables de trabajo en bash mientras estoy trabajando en algo. Esto evita tener que escribirlo cada vez y también ayuda cuando vuelves a trabajar en ello algún tiempo después (mete la asignación en un localprofile.sh archivo y source
que más tarde...).
Me gustaría almacenar un nombre de directorio con espacios. Sé cómo tratar los espacios en los nombres de archivos/directorios de forma interactiva, utilizando comillas o escapes basados en la letra:
$ ls -1 /Users/myuser/Library/Application\ Support/ | tail -5
iTerm2
icdd
org.videolan.vlc
pip
videosubscriptionsd
o
$ ls -1 "/Users/myuser/Library/Application Support/" | tail -5
iTerm2
icdd
org.videolan.vlc
pip
videosubscriptionsd
Ahora me gustaría asignar ese directorio a un bash $dn variable y eso no funciona muy bien.
He aquí algunos intentos diferentes. A propósito me mantuve alejado de la extensión de shell basada en ~.
dn='/Users/myuser/Library/Application Support/'
echo ''
echo ''
echo $dn
ls -1 $dn
dn='"/Users/myuser/Library/Application Support/"'
echo ''
echo ''
echo $dn
ls -1 $dn
dn=/Users/myuser/Library/Application\ Support/
echo ''
echo ''
echo $dn
ls -1 $dn
dn="/Users/myuser/Library/Application\ Support/"
echo ''
echo ''
echo $dn
ls -1 $dn
cada uno de ellos muestra una variación de ls: /Users/myuser/Library/Application\: No such file or directory