2013-03-07 5 views
5

Ho tentato di implementare la funzionalità descritta nell'articolo del blog "All of bash history revisited". Fondamentalmente ciò che gli script ti permettono di fare è mantenere tutta la tua cronologia di bash per sempre e attraverso più sessioni.Tutta la cronologia di bash Nessun errore di file o directory nelle directory con spazi

Qualcuno ha gentilmente fatto tutto il codice easily accessible on Github.

Tuttavia ogni volta che uso una directory con spazi:

cd ~/Desktop/ 
mkdir "dir with spaces" 
cd dir\ with\ spaces/ 

la prossima volta che accedo ottengo un errore simile al seguente:

-bash: pushd: /Users/jack/Desktop/dir: No such file or directory 
-bash: pushd: with: No such file or directory 
-bash: pushd: spaces: No such file or directory 

L'unico riferimento che ho capito non ha sembra essere la causa del problema:

# Now change to the new dir and add to the top of the stack 
pushd "${the_new_dir}" > /dev/null 

Spero che un esperto di scripting bash possa indicare l'errore nel codice così posso correggerlo.

+1

Non sicuro, ma prova 'the_new_dir =" $ 1 "' invece di 'the_new_dir = $ 1'. – nneonneo

+0

@nneonneo quoting non è necessario su un'espansione sul lato destro di un compito. La divisione delle parole non si verifica lì. – jordanm

+0

E 'possibile che ci sia qualcos'altro nel tuo .bashrc che sta soffocando sul nome della directory? – danfuzz

risposta

4

Questo è stato il colpevole:

for x in `hd 20` `pwd`; do cd_func $x ; done 

Sostituire con:

(hd 20; pwd) | while read x; do cd_func "$x"; done 

richiesta di pull emesso a github pronti contro termine.