Fish-shell: 魚のスクリプトを実行できません

作成日 2017年05月31日  ·  3コメント  ·  ソース: fish-shell/fish-shell

魚バージョン: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

こんにちは、fishスクリプトを実行できないようです。実行可能ファイルecho "echo test" > script.fishを作成すると、 fish ./script.fishを実行すると、エラーメッセージ./script.fish: No such file or directoryます。

何らかの理由で、 sh -c 'env HOME=$(mktemp -d) fish'で正常に動作します。

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

~/.dotfiles/bin/source.fishへのリンク: https

私が探しているべきものについてのヒントはありがたいです。

question

最も参考になるコメント

そうです、 source.fishcd ~終わります。 それは一般的に悪い考えです。 ログインシェルでは、すでにPWDがホームディレクトリに設定されている必要があります。 また、他の魚のインスタンスを開始する場合は、障害者を変更したくありません。 それを行う正当な理由があると思われる場合は、インタラクティブシェルに限定する必要があります。

if status is-interactive
    cd ~
end

全てのコメント3件

fish ./script.fishを実行すると、次のエラーメッセージが表示されます。./script.fish:そのようなファイルまたはディレクトリはありません。

これは、構成内のcdのように見えます。

そのファイルを実行してみてください。失敗した場合は、 echo $PWD; fish -c 'echo $PWD'を実行してください。 2つが異なる場合、それはあなたの問題です。

それでした!

$ echo $PWD
/tmp
$ fish -c "echo \$PWD"
/home/limeth

どうもありがとうございます! :)

そうです、 source.fishcd ~終わります。 それは一般的に悪い考えです。 ログインシェルでは、すでにPWDがホームディレクトリに設定されている必要があります。 また、他の魚のインスタンスを開始する場合は、障害者を変更したくありません。 それを行う正当な理由があると思われる場合は、インタラクティブシェルに限定する必要があります。

if status is-interactive
    cd ~
end
このページは役に立ちましたか?
0 / 5 - 0 評価