1 votes

Le shell personnalisé script est introuvable

J'utilise MacOSX Sierra et j'ai homebrew installé. J'essaie donc de créer compress-slide.sh scriptsous ~/bin . Afin de me débarrasser des liens symboliques, j'ai ajouté l'option ~/bin sur mon chemin, donc mon chemin ressemble à ça maintenant : /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin

J'ai placé le chemin sous /etc/paths et voici à quoi ça ressemble :

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

Mais quand j'essaie which compress-slide.sh rien n'est trouvé, cela ne me donne pas le chemin que j'attends qui est ~/bin/compress-slide.sh Je souhaite juste utiliser ce script lorsque je suis sur différents répertoires. Je me suis également assuré que je suis le propriétaire du script et qu'il a la permission d'être exécuté.

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

Voici le contenu de mon script, juste une simple commande pour tester son fonctionnement ;

#!/usr/bin/env bash

echo 'test'

Voici mon 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

Est-ce à cause de Homebrew en conflit avec mon installation ? Quelqu'un a-t-il rencontré ce problème ?

2voto

Oskar Points 1242

Je lierais symétriquement les scripts que vous placez hors du chemin vers /usr/local/bin pour ne pas avoir à raisonner avec l'expansion ~ dans les fichiers .dot pour votre shell.

Il est possible d'avoir un moyen durable de s'assurer que votre environnement est configuré pour gérer les ~ - mais je suis un fan des chemins absolus afin d'éviter les problèmes lorsque vous su à d'autres utilisateurs et ont une contamination croisée de l'environnement ainsi que des problèmes comme ceux que vous rencontrez.

Il ne s'agit pas d'une question de homebrew - purement sur bash ou le shell que vous utilisez.

2voto

Michael Zhou Points 167

Votre problème n'a rien à voir avec la paresse. L'application path_helper empêche l'expansion des tildes et des variables. Voici une version modifiée /private/etc/paths fichier.

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

Le site path_helper construit une chaîne de caractères qui sera évaluée dans /private/etc/profile en utilisant la variable PATH actuelle ainsi que les répertoires listés /private/etc/paths et les fichiers dans /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;

Les guillemets doubles autour de la variable PATH empêchent l'expansion du tilde et la barre oblique inversée avant le signe dollar empêche l'expansion de la variable $HOME.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X