• 0 Posts
  • 45 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle





  • This works fine for me:

    function foo() {
      bar[0]="hello"
      bar[1]="world"
      return 1
    }
    if ! foo; then
      echo "${bar[@]}"
    fi
    

    https://onlinegdb.com/xPIFP110w


    Are you getting messed up by the way bash handles exit statuses? An exit status of 0 indicates a success and a non-zero exit status indicates a failure (which allows for the different exit statuses to indicate different errors).

    So if my_func; then something; fi will only run something when my_func returns 0. In your case, you’re using ! to do the opposite so it only runs when your function returns a non-zero status.

    This can be quite surprising if you’re expecting the behavior found in other languages like python or C++ where 0 represents false and 1 represents true.












  • It’s useful when vim is being run from a different program or script.

    For example, if I run p4 change to create a new Perforce changelist it will open up my editor (which I have set to vim) so that I can enter the CL description and other fields. If I realize I don’t actually actually want to create the CL yet I can use :cq to quit with an error so that p4 knows to abort.

    I also have a script I use for diffing a list of file pairs. It runs vimdiff on the first pair of files then if I exit with :qa it will move on to the next pair of files. But if I exit with :cq it will just abort and skip all of the remaining file pairs.



  • I have some good friends I met through concerts.

    There are a couple smaller venues that fit a few hundred people that I frequent. When you catch a lot of shows in a particular genre and the crowd’s that small you’ll start to see some familiar faces at each show. You already have something in common which makes it easier to strike up a conversation.

    One band I like plays three nights at this large amphitheatre every year, and you basically have to camp there since there aren’t any hotels nearby. So I’ve also met friends out there since you get a whole weekend to hang out and if you go every year you run into other people who go every year.