Me pregunto si hay un equivalente de Unix para la variable de entorno de Windows PATHEXT
.
Para aquellos que no tienen antecedentes de Windows: Agregar un sufijo de archivo PATHEXT
me permite ejecutar un script sin escribir ese sufijo en cmd.exe. Por ejemplo, en mi computadora con Windows, PATHEXT contiene el sufijo .pl
y cuando quiero ejecutar un script Perl en cmd.exe, simplemente puedo escribir my-script
y se ejecuta. Sin embargo, con el fin de ejecutar el mismo script en bash, tengo que escribir el nombre completo: my-script.pl
.
Dado que actualmente trabajo tanto en Windows como en Unix, casi siempre caigo en la trampa de olvidar escribir el sufijo cuando vuelvo a un cuadro de Unix.
shell
environment-variables
René Nyffenegger
fuente
fuente
.sh
precede.pl
,foo.sh
se ejecutará. stackoverflow.com/a/7839178/180275Respuestas:
corto: no
más largo: los scripts de shell requieren un nombre de archivo completo, pero puede definir alias para que sus comandos se refieran a ellos por varios nombres. Por ejemplo
fuente
La solución más simple es simplemente no usar extensiones para sus scripts. No son necesarios y solo sirven para identificar el tipo de script para usted, pero no para la computadora. Mientras que Windows usa extensiones para identificar el tipo de archivo, los sistemas * nix (con muy pocas excepciones como
gzip
) no lo hacen.Tenga en cuenta que los binarios no tienen
.exe
extensión en * nix, simplemente se llamanfoo
, nofoo.exe
. Entonces, si deseafoo.pl
ser ejecutable comofoo
, simplemente guarde el archivo comofoo
en primer lugar.Alternativamente, si realmente necesita tener las extensiones por alguna razón, vaya al directorio en el que guarde sus scripts y ejecute esto:
Eso iterará sobre todos los archivos con extensiones y, para cada archivo
foo.ext
de ellos, creará un enlace llamado afoo
qué puntosfoo.ext
. Tenga en cuenta que esto fallará si tiene varias secuencias de comandos con el mismo nombre pero con extensiones diferentes.fuente
Si realmente quieres hacerlo, hay una manera. Agregue lo siguiente al final de
.bashrc
en su directorio de inicio y configure losPATHEXT
nombres de extensión con puntos separados por:
. (Modificado para incluir los puntos para que coincidan con el comportamiento de Windows). Úselo bajo su propio riesgo.Recuerde también que puede usar la pestaña para completar el nombre del comando si no hay otro comando que también comience con
my-script
.fuente