versión de pescado: 2.5.0
Ubuntu 16.04 Linux limebox 4.4.0-78-generic #99-Ubuntu SMP Thu Apr 27 15:29:09 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Hola, parece que no puedo ejecutar scripts de peces, cuando creo un archivo ejecutable echo "echo test" > script.fish
, ejecutar fish ./script.fish
da como resultado un mensaje de error: ./script.fish: No such file or directory
.
Funciona bien con sh -c 'env HOME=$(mktemp -d) fish'
, por alguna razón.
link/.config/fish $ tree
.
├── completions
│ ├── fisher.fish
│ ├── get.fish -> /home/limeth/.config/fisherman/get/completions/get.fish
│ └── git.fish -> /home/limeth/.config/fisherman/git-flow/completions/git.fish
├── conf.d
│ └── git-flow.init.fish -> /home/limeth/.config/fisherman/git-flow/init.fish
├── config.fish
├── fish_colors
├── fishd.limebox
├── fishfile
├── fish_history
├── fish_read_history
└── functions
├── cl.fish
├── fisher.fish
├── fish_greeting.fish -> /home/limeth/.config/fisherman/bobthefish/fish_greeting.fish
├── fish_mode_prompt.fish -> /home/limeth/.config/fisherman/bobthefish/fish_mode_prompt.fish
├── fish_prompt.fish -> /home/limeth/.config/fisherman/bobthefish/fish_prompt.fish
├── fish_right_prompt.fish -> /home/limeth/.config/fisherman/bobthefish/fish_right_prompt.fish
├── fish_title.fish -> /home/limeth/.config/fisherman/bobthefish/fish_title.fish
├── fish_user_key_bindings.fish
├── fzf_key_bindings.fish -> /home/limeth/.fzf/shell/key-bindings.fish
├── get.fish -> /home/limeth/.config/fisherman/get/functions/get.fish
├── getopts.fish -> /home/limeth/.config/fisherman/getopts/getopts.fish
└── set_color_custom.fish -> /home/limeth/.config/fisherman/jellyfish/functions/set_color_custom.fish
3 directories, 22 files
$ cat config.fish
# Source dotfiles scripts
source ~/.dotfiles/bin/source.fish
# Enable terminal colors
set -x TERM "xterm-256color"
# Vi mode
# Automatically enable Vi mode in `~/.config/fish/functions/fish_user_key_bindings.fish`
set -g theme_display_vi yes
Enlace a ~/.dotfiles/bin/source.fish
: https://gitlab.com/Limeth/dotfiles/blob/master/bin/source.fish
Se agradece cualquier consejo sobre lo que debería estar buscando.
ejecutar fish ./script.fish da como resultado un mensaje de error: ./script.fish: No existe tal archivo o directorio.
Esto parece algo cd
s en su configuración.
Intente ejecutar ese archivo y, cuando falle, ejecute echo $PWD; fish -c 'echo $PWD'
. Si los dos difieren, ese es tu problema.
¡Eso fue todo!
$ echo $PWD
/tmp
$ fish -c "echo \$PWD"
/home/limeth
¡Muchos gracias! :)
Bien, su source.fish termina con cd ~
. Generalmente es una mala idea. Un shell de inicio de sesión ya debería tener PWD configurado en su directorio de inicio. Y si está iniciando cualquier otra instancia de peces, no desea cambiar el PWD. Si cree que hay una buena razón para hacerlo, debe limitarlo a shells interactivos:
if status is-interactive
cd ~
end
Comentario más útil
Bien, su source.fish termina con
cd ~
. Generalmente es una mala idea. Un shell de inicio de sesión ya debería tener PWD configurado en su directorio de inicio. Y si está iniciando cualquier otra instancia de peces, no desea cambiar el PWD. Si cree que hay una buena razón para hacerlo, debe limitarlo a shells interactivos: