• calamityjanitor@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    1 day ago

    If your script starts with #!/bin/bash, both bash and zsh will run it fine. The bigger problem is the programs, filesystem and libraries being different. Which is why POSIX exists, if you’re looking to write stuff that works across systems.

    I couldn’t tell if you were honestly asking for explanations or if all of your complaints sum up to “it’s different and I don’t like that”. Which honestly, fair.

      • calamityjanitor@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 hours ago

        What bash scripts are you writing that you expect to run on both a Mac laptop and a production linux server? You can install the newer bash if that’s what you’re used to, but you’re surely going to run into issues like ls . -lah far quicker than differences in bash since 3.2

        Even on a linux desktop you’re going to have differences from a production server, you’d want to be using something like ansible, or replicating production in a local test environment in a container or VM. Exactly like you have done.

        How’d you end up being the only one at your workplace to be given a Mac? Even with a linux VM, being on ARM can cause issues with compatibility.

    • Aatube@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      1 day ago

      not exactly. if you’re worried about the differences between bash 3 and 5, you’re probably using some intermediate bash-exclusive features because that’s the headlining changes between these versions (google says associative arrays and new shellvars. even if zsh has equivalent features, the syntax would be different.) it’s only “guaranteed” to run fine in both shells if the shebang ends in /sh to call the POSIX shell without any bash- or zsh- specific features.

      it isn’t available anywhere else

      i don’t get what @greyscale@lemmy.grey.ooo means by this though

      • greyscale@lemmy.grey.ooo
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 day ago

        Production server does not have zsh. Other developers aren’t on macbooks. Ergo, I cannot use zsh (it sucks anyway)