neuralnode
Technical User
Hi All,
I would appreciate some advice on how to handle dynamic variables in a bash script.
Right now I use the following function, which is called every time I set new variables "DATAL", "STEP", and "ACTION".
vrefresh() {
DATAL=`date +%Y-%m-%d\ \|\ %H:%M`
OKMSG="$DATAL: $STEP, action $ACTION - completed successfully."
ERMSG="$DATAL: $STEP, action $ACTION - failed!"
}
What I want to accomplish is to get rid of the necessity to use this function, and just call $DATAL dynamically.
Normally, if the function is not called, the $DATAL variable will always be just as it was declared for the first time - which of course is not what I want, as you may imagine.
The question is: How to set it dynamically, so that it gets updated without having to declare it anew before every entry in the script?
Also, I wanted to declare only once the variables $OKMSG and $ERMSG, while the variables $STEP and $ACTION would change in consecutive parts of the script, e.g.
#!/bin/bash
## Global vars
LOGFILE=/tmp/logfile.txt
DATAL=`date +%Y-%m-%d\ \|\ %H:%M`
OKMSG="$DATAL: $STEP, action $ACTION - completed successfully."
ERMSG="$DATAL: $STEP, action $ACTION - failed!"
## Proper Script
STEP="Step 1"
ACTION="1.1: updating file.txt"
if <some argument>
<some operations>
echo "$DATAL: $OKMSG" >> $LOGFILE
else
echo "$DATAL: $ERMSG" >> $LOGFILE
fi
Any help appreciated.
Thanx!
I would appreciate some advice on how to handle dynamic variables in a bash script.
Right now I use the following function, which is called every time I set new variables "DATAL", "STEP", and "ACTION".
vrefresh() {
DATAL=`date +%Y-%m-%d\ \|\ %H:%M`
OKMSG="$DATAL: $STEP, action $ACTION - completed successfully."
ERMSG="$DATAL: $STEP, action $ACTION - failed!"
}
What I want to accomplish is to get rid of the necessity to use this function, and just call $DATAL dynamically.
Normally, if the function is not called, the $DATAL variable will always be just as it was declared for the first time - which of course is not what I want, as you may imagine.
The question is: How to set it dynamically, so that it gets updated without having to declare it anew before every entry in the script?
Also, I wanted to declare only once the variables $OKMSG and $ERMSG, while the variables $STEP and $ACTION would change in consecutive parts of the script, e.g.
#!/bin/bash
## Global vars
LOGFILE=/tmp/logfile.txt
DATAL=`date +%Y-%m-%d\ \|\ %H:%M`
OKMSG="$DATAL: $STEP, action $ACTION - completed successfully."
ERMSG="$DATAL: $STEP, action $ACTION - failed!"
## Proper Script
STEP="Step 1"
ACTION="1.1: updating file.txt"
if <some argument>
<some operations>
echo "$DATAL: $OKMSG" >> $LOGFILE
else
echo "$DATAL: $ERMSG" >> $LOGFILE
fi
Any help appreciated.
Thanx!