0 votos

¿Error? 'Buen tiempo' desactiva $ Ruta de búsqueda

Con ~ / bin al principio de mi $ PATH, todavía tengo que nombrar el directorio si pongo 'buen tiempo' delante del nombre de archivo. Además, 'el cual' no encontrarlo sin embargo, todavía se ejecuta si invoco sin "tiempo agradable bin / '. Este no fue el caso en algún momento en el pasado reciente. ¿Es un error introducido recientemente o una "característica" que Apple no apoyó hasta hace poco?

 MBP:~ user$ nice time copy_websites
copy_websites: No such file or directory
        0.00 real         0.00 user         0.00 sys
MBP:~ user$ echo $PATH
~/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin
MBP:~ user$ which copy_websites
MBP:~ user$ which bash
/bin/bash
MBP:~ user$ head -1 bin/copy_websites 
#!/bin/bash
MBP:~ user$ ls -lat@e bin/co*
-rwx------@ 1 user  staff  747 Mar 10 13:36 bin/copy_websites
    com.apple.TextEncoding   15 
    com.apple.metadata:kMDLabel_zla7g6mgqwkmgzlaez4j64ql5q   89 
 

0voto

El problema aquí es que el manejo de ~ diferencia entre la cáscara y el macOS kernel. Si ejecuta el comando directamente desde el símbolo del sistema, PATH de expansión es manejado por la shell que sabe cómo expandir ~. Si ejecuta el comando a través de la nice, el comando se pasa a la de macOS núcleo de la ruta de la expansión:

pse@Mithos:~$ mkdir foo
pse@Mithos:~$ cat >foo/foo.sh
#!/bin/sh
echo foo here
pse@Mithos:~$ chmod +x foo/foo.sh
pse@Mithos:~$ foo/foo.sh
foo here
pse@Mithos:~$ PATH='~/foo':$PATH
pse@Mithos:~$ echo $PATH
~/foo:/Users/pse/.bin/script:/Users/pse/.bin/i386:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
pse@Mithos:~$ foo.sh
foo here
pse@Mithos:~$ time foo.sh
foo here

real    0m0.007s
user    0m0.002s
sys 0m0.002s
pse@Mithos:~$ nice time foo.sh
foo.sh: No such file or directory
        0.00 real         0.00 user         0.00 sys
pse@Mithos:~$ nice foo.sh
nice: foo.sh: No such file or directory
pse@Mithos:~$ 

Para evitar esto, asegúrese siempre de que su asignados RUTA de acceso contiene ni ~ ni ninguna no expandido variables.

PS: Además, existen diferentes time comandos pidió time foo y nice time foo. Para obtener el mismo formato de salida en ambos casos, el uso /usr/bin/time foo lugar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X