(Nota: dopo qualche ricerca in più ho una risposta parziale, ma non mi piace dover scrivere i comandi effettivi rispetto a quella variabile in modo diverso a seconda degli spazi incorporati o meno. Accetterò suggerimenti migliori) .
Mi piace memorizzare varie variabili di lavoro in bash mentre sto lavorando su qualcosa. Questo evita di doverlo scrivere ogni volta e ti aiuta anche quando torni a lavorare su di esso qualche tempo dopo (configura il compito in un file localprofile.sh e source
più tardi ...) .
Vorrei memorizzare un nome di directory con spazi al suo interno. So come gestire gli spazi nei nomi di file / directory in modo interattivo, utilizzando la citazione o l'escaping \ -based:
$ 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
Ora vorrei assegnare quella directory a una variabile bash $ dn e non funziona così bene.
Ecco alcuni vari tentativi. Di proposito sono rimasto lontano dall'estensione della shell basata su ~.
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
ognuno di questi mostra una variazione su ls: /Users/myuser/Library/Application\: No such file or directory