Impossibile trovare lo script della shell personalizzata

1

Sto eseguendo MacOSX Sierra e ho installato homebrew . Quindi sto provando a creare compress-slide.sh script in ~/bin . Per liberarmi dei link simbolici ho aggiunto ~/bin nel mio percorso, quindi il mio percorso ora si presenta così: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin

Ho impostato il percorso sotto /etc/paths ed ecco come appare:

/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin
~/bin

Ma quando provo which compress-slide.sh non viene trovato nulla, non mi dà il percorso che mi aspetto che sia ~/bin/compress-slide.sh Voglio solo usare questo script quando sono su diverse directory. Inoltre mi sono assicurato di essere il proprietario dello script e di avere il permesso eseguibile.

-rwxr-xr-x  1 dummyuser  dummyuser   135B Dec 28 18:13 compress-slide.sh

Ecco il contenuto del mio script, solo un semplice comando per testarlo;

#!/usr/bin/env bash

echo 'test'

Ecco la mia homebrew config:

HOMEBREW_VERSION: 1.1.5
ORIGIN: https://github.com/Homebrew/brew
HEAD: 9cd5a21b473f0271b162bbe7f77f7d1468c0cfa1
Last commit: 2 weeks ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 797542c1bf61c4cfc58c7a52a2534d154cc584d1
Core tap last commit: 8 days ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: octa-core 64-bit ivybridge
Homebrew Ruby: 2.0.0-p648
Clang: 8.0 build 800
Git: 2.10.1 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
Java: 1.8.0_60, 1.7.0_79
macOS: 10.12.2-x86_64
Xcode: 8.2.1
CLT: N/A
X11: N/A

Questo a causa di Homebrew in conflitto con la mia configurazione? Qualcuno ha incontrato anche questo?

    
posta JohnnyQ 28.12.2016 - 11:03
fonte

2 risposte

2

Il tuo problema non ha nulla a che fare con l'essere pigri. L'applicazione path_helper impedisce l'espansione di tilde e variabili. Ecco un file /private/etc/paths modificato.

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
~/bin
$HOME/local/bin

L'applicazione path_helper costruisce una stringa da valutare in /private/etc/profile utilizzando la variabile PATH corrente insieme a quelle directory elencate /private/etc/paths e file in /private/etc/paths.d .

/usr/libexec/path_helper -s
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin:\$HOME/local/bin"; export PATH;

Le doppie virgolette attorno alla variabile PATH impediscono l'espansione del tilde e il backslash prima che il segno del dollaro impedisca l'espansione variabile di $ HOME.

    
risposta data 29.12.2016 - 14:17
fonte
2

Collegheremo gli script degli script da te posizionati fuori dal percorso in / usr / local / bin in modo da non dover ragionare con ~ l'espansione nei file .dot per la tua shell.

È possibile avere un modo durevole per garantire che il tuo ambiente sia impostato per gestire ~ - ma sono un fan di avere percorsi assoluti lì per evitare problemi quando si su ad altri utenti e si ha anche una contaminazione incrociata dell'ambiente come problemi come te.

Questo non è nulla su homebrew - semplicemente su bash o sulla shell che stai usando.

    
risposta data 28.12.2016 - 16:32
fonte

Leggi altre domande sui tag