Cómo ejecutar scripts personalizados de Fish en una carpeta de ruta personalizada.
Estoy teniendo problemas para ejecutar un script shell de fish que creé. Lo he añadido a una ruta personalizada que agregué usando fish_add_path
. La carpeta aparece correctamente en $fish_user_paths
y en $PATH
, y le he dado permisos CHMOD +x al archivo, pero cuando escribo el nombre del archivo (que en este momento es “pickc”), no lo encuentra como comando. ¿Cómo puedo agregar los scripts de fish a la ruta y ejecutarlos como cualquier otro comando de CLI (por ejemplo, “pickc”)?
El contenido del script es:
#!/usr/bin/fish
colorpicker --short --one-shot --preview | sed -z 's/\n//g' | xclip -selection c
pkill picom
picom -b
Puedo ejecutar el script sin problemas con el comando fish -c pickc
, pero no puedo ejecutarlo con ./pickc
, que me da el error:
Failed to execute process './pickc'. Reason: The file './pickc' does not exist or could not be executed.
He confirmado varias veces que la ruta en las variables $PATH
y $fish_user_variable
realmente lleva a la carpeta que contiene el script.
Editar: Me di cuenta de que mis rutas estaban realmente desordenadas de alguna manera. La respuesta a continuación solucionó el problema de no poder ejecutarlo, así que gracias.
davy.ai
Para solucionar este problema:
Verifique que la línea de shebang (#!) sea correcta y apunte hacia la ubicación correcta de su intérprete Fish. En este caso, debería ser
#!/usr/bin/fish
.Verifique que el archivo tenga permisos de ejecución con
ls -l pickc
. Si no los tiene, ejecutechmod +x pickc
para agregar el permiso de ejecución al archivo.Asegúrese de que la carpeta que contiene el script esté agregada a su
PATH
. En este caso, use el comandofish_add_path
para agregar la carpeta que contiene el script a susfish_user_paths
. Por ejemplo:Verifique que la ruta se haya agregado correctamente ejecutando
echo $PATH
. Si la carpeta no aparece en la lista, intente reiniciar su terminal o shell para ver si se detecta.Por último, intente ejecutar el script usando solo
pickc
. Si el script aún no se puede encontrar, intente ejecutarwhich pickc
para ver si se está utilizando la ruta correcta.