Skip to main content

Bash stuff I should've learned before

I wanted to grab some variables from an xml and parse them into environment variables.

After some googling around, I found my answer:
  1. Use xmlstarlet to pull the name/value pairs
  2. Then use sed to combine them into "name=value" format
  3. Then use a while loop with process substitution
It ended up being something like

#!/bin/bash

while read -r line; do
  # do some stuff to parse the line
  # ...
  printf -v $varname "$varval"
  export $varname
done <<< "$(xmlstarlet sel -t -m "[xml selections here]" -v . -n <[xml file]  | sed 'N;s/\n/=/')"

Yay so cool.

Comments

Popular posts from this blog

The end of summer

It's been a wild year. Gains and losses. COVID-19 and the shelter in place. Lately, fires. Today was a very dark day, literally. For about half the daylight hours, there was so much ash in the air that it looked like it was close to sunset, but it was definitely not anywhere near as beautiful. Red sun following us everywhere. Bubonic plague found on fleas in Lake Tahoe. The list goes on and on. Everyone is tired. Exhausted. Burnt out. There is no respite, just a new normal that seems like an even steeper climb than before. Sleep gives way to another day with no refreshment. Yes, that's how things seem. But there have also been bright moments. Time spent with family, especially with the little one. Growing and nurturing plants, building things, trying new recipes, going to the store to shop for dinner, reading books, coloring with crayons... We grow closer together, weaving together a blanket of love and memories that we wrap ourselves in.

Resizing /root partition in Debian 7 (Wheezy)

I've usually been afraid to do anything drastic with the underlying filesystem because of how many times I've messed up the filesystem to begin with, and also because of how much time it takes to reinstall everything. This time, I decided that it was ok to go ahead and take a little risk here. My Linux machine is an old X61s, and its purpose is for me to experiment and learn more about Linux. I started getting a message that I was running low on space on root. Sure enough, the 300MB was all used up. I was hoping that GPartEd could help me with resizing the partitions. I couldn't see the partitions because it was all under an lvm. My plan was to shrink /opt slightly, then grow root. Thankfully, the formula isn't too bad, but there are a few steps. The first link I resorted to was this one: http://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/. I didn't reboot to resize /opt; I just resized it after unmounting it. Unmount /opt:   # umount /dev/chrono...