• gomp@lemmy.ml
    link
    fedilink
    arrow-up
    20
    ·
    5 months ago

    beware fish shell syntax works drastically differently from other POSIX shells

    Come on, that’s scaremongering :)

    On interactive, day-to-day use, fish syntax is basically the same as bash or any other shell: you type your commands, hit enter and the command is run. Only when it comes to scripting (or writing complex one-liners, or copy-pasting stuff from the web) are there appreciable differences. In those cases, until one is accustomed to fish, running the command/script in bash is still an option.

    Let me be 100% clear: yes, fish will complain if a wildcard doesn’t expand to anything, and there are other minor things that may impact typical interactive use. I’m just saying there is basically zero learning curve if you want to try fish and that you can just fire up bash if you hit a wall in a moment when you can’t afford to investigate because you need stuff done.

    If I had to say, the most hassle with fish is that people assume you are running POSIX shell and so you have to know how to adapt instructions to your shell. For example, someone may say “add expor SOME_VAR=some_value to your .bashrc” and you need to be able to translate that to fish. Also, there is very specific software (in my system, it’s just sdkman, an utility that manages which java development tools are installed/available in a shell session) that only works in POSIX shells and needs some adapter for fish.

    • leo85811nardo@lemmy.world
      link
      fedilink
      arrow-up
      10
      ·
      5 months ago

      Having to adapt to shells is exactly why I don’t like to use radical shells like fish or nushell. I don’t want to feel too comfortable with them, because if I do, I would probably regret it when I’m stuck in situations that doesn’t have the correct shell. SSH into a new server or Raspberry Pi that has DNS issue, for example, which actually happened to me more than once. The DNS is already troublesome, and I don’t want shell unfamiliarity to become another headache

      • gomp@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        Well, it’s not like by learning fish you’ll automatically forget bash :) but I do agree that you should learn bash first, then plain sh and only after those go explore other shells.

        I love how “radical shells” sounds! :)