Just annotations of little "how to's", so I know I can find how to do something I've already done when I need to do it again, in case I don't remember anymore, which is not unlikely. Hopefully they can be useful to others, but I can't guarantee that it will work, or that it won't even make things worse.
["SOLVED"] Weird failure in bash string comparison
A string produced by a given command is somehow different from a string produced by "catting" a file produced by redirecting the output of the very same command. That's weird, if you ask me.
The "solution" is not to compare them both, but create a second file from the "same" redirection, and then strings from "catting" those files. Then the comparison won't always say the strings are different.
The "solution" is not to compare them both, but create a second file from the "same" redirection, and then strings from "catting" those files. Then the comparison won't always say the strings are different.
Code:
#!/bin/bash apps=$(ps -axo comm | grep "|firefox\|chromium\|kwrite\|kate\|kcalc\|curl\|wget\|lxterminal\|konsole\|konqueror\|dolphin\|systemsettings5\|mpv\|vlc" ) echo $apps > /dev/shm/appsnow appsnow=$(cat /dev/shm/appsnow) prevapps=$(cat /dev/shm/prevapps 2>/dev/null) echo apps...... \"$apps\" echo appsnow... \"$appsnow\" echo prevapps.. \"$prevapps\" echo if [[ "$apps" == "$prevapps" ]] ; then echo same apps comparing vars from different commands else echo different apps comparing vars from different commands echo $apps > /dev/shm/prevapps fi if [[ "$appsnow" == "$prevapps" ]] ; then echo same apps comparing vars coming from cat else echo different apps comparing vars coming from cat echo $apps > /dev/shm/prevapps fi exit 0
Total Comments 0