Soluzione (originale nei commenti): rimuovi eval dalla prima riga. Il problema potrebbe essere presente anche in uno degli script che sono source d (nella terza e nell'ultima riga), ma non si è verificato il caso.
Spiegazione: eval fa sì che la shell analizzi il comando due volte. Tecnicamente, passa attraverso tutti i soliti passaggi quando la shell analizza una riga di comando - interpretando e rimuovendo virgolette e caratteri di escape, espandendo variabili, ecc. - quindi passa il risultato al comando eval come argomenti. Il comando eval (che è incorporato in bash, non un eseguibile separato) rimette insieme questi argomenti come se fosse un comando, esegue tutto ciò che analizza roba di nuovo ed esegue il risultato.
Questa è quasi sempre una cattiva idea. L'analisi delle shell è complicata e disordinata, e fare di più rende solo più complicazioni e confusione. Sfortunatamente, a volte le persone lo usano come una sorta di soluzione "colpisci con un martello più grande", e funziona così bene come ci si aspetterebbe di battere le cose con un martello più grande per funzionare.
In questo caso particolare, penso che quello che sta succedendo è che prima che questo script venga eseguito, PATH è impostato su qualcosa come "/ usr / local / bin: / usr / bin: / bin: / usr / sbin: / Applications / Something Workbooks.app/Contents/SharedSupport/path-bin "(dove" Qualcosa "è una parola diversa, ma non conosco il nome specifico dell'app). La shell prende questo:
eval export PATH="/Users/rachelromine/.rbenv/shims:${PATH}"
Rimuove le virgolette e espande ${PATH} , passa il risultato a eval , che viene eseguito:
export PATH=/Users/rachelromine/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/Applications/Something Workbooks.app/Contents/SharedSupport/path-bin
Poiché le virgolette sono state rimosse nel primo passaggio di analisi, quello spazio nel mezzo del nome dell'app viene trattato come un separatore tra gli argomenti (anziché come parte di un nome file), quindi il comando export imposta PATH a "/Users/rachelromine/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/Applications/Something", quindi in un'operazione totalmente non correlata tenta di esportare una variabile denominata "Workbooks.app/Contents/SharedSupport/path-bin" ... che non è un nome di variabile valido ("identificatore").
Ora, per quanto riguarda ciò che eval sta facendo lì, in primo luogo: non lo so. Non riesco a vedere come potrebbe fare qualcosa di buono qui (anche se se non fosse per lo spazio, non avrebbe fatto alcun danno). Presumo che fosse in alcune istruzioni che hai seguito (o un prototipo .bash_profile) per l'installazione di rbenv. Cosa stava facendo là , non ne ho idea.