No se encuentra el script de shell personalizado

1

Estoy ejecutando MacOSX Sierra y tengo instalado homebrew . Así que estoy tratando de crear el script compress-slide.sh en ~/bin . Para poder deshacerme de hacer enlaces simbólicos, agregué ~/bin en mi ruta para que mi ruta tenga este aspecto ahora: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin

He establecido la ruta en /etc/paths y así es como se ve:

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

Pero cuando intento which compress-slide.sh no se encuentra nada, no me da la ruta que estoy esperando, que es ~/bin/compress-slide.sh . Solo deseo usar este script cuando estoy en directorios diferentes. También me aseguré de que soy el propietario de la secuencia de comandos y que tiene permiso ejecutable.

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

Aquí está el contenido de mi script, solo un comando simple para probar que funciona;

#!/usr/bin/env bash

echo 'test'

Aquí está mi configuración homebrew :

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

¿Esto se debe a que Homebrew está en conflicto con mi configuración? ¿Alguien ha encontrado esto también?

    
pregunta JohnnyQ 28.12.2016 - 11:03

2 respuestas

2

Tu problema no tiene nada que ver con ser perezoso. La aplicación path_helper evita la expansión de tilde y variable. Aquí hay un archivo /private/etc/paths modificado.

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

La aplicación path_helper construye una cadena para ser evaluada en /private/etc/profile usando la variable PATH actual junto con los directorios listados /private/etc/paths y los archivos dentro de /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;

Las comillas dobles alrededor de la variable PATH impiden la expansión de la tilde y la barra invertida antes de que el signo de dólar evite la expansión de la variable $ HOME.

    
respondido por el fd0 29.12.2016 - 14:17
2

Yo vincularía los scripts que coloque fuera de la ruta a / usr / local / bin para que no tenga que razonar con ~ expansión en archivos .dot para su shell.

Es posible tener una forma duradera de asegurar que su entorno esté configurado para manejar ~ - pero soy fanático de tener caminos absolutos allí para evitar problemas cuando usted su a otros usuarios y también tiene contaminación ambiental cruzada Como temas como los que te enfrentas.

Esto no es nada sobre homebrew , solo sobre bash o cualquier shell que estés usando.

    
respondido por el bmike 28.12.2016 - 16:32

Lea otras preguntas en las etiquetas