I'm trying to make a custom prompt. When I hit enter certain values in the prompt should be updated, but its not getting updated. I tried adding export, like this
export PS1="[$v0][$v1][$v2][$v3]$"
But doesnt get updated. For example in the console i write 0 2 "date -R", the output would be something like this
[Fri, 28 Aug 2020 16:54:00 +0200][][][]$
When i press enter it stays exactly the same, but i want it to be updated. I tried also doing single quotes at the PS1 instead of double quotes, but didn't work.
Heres the full code:
#!/bin/bash
updatedata() {
v=$(awk -v strSearch="$1" '
BEGIN{
FS=";"
}
{
gsub(/\r/,"")
for(i=1;i<=NF;i++){
if($i==strSearch){ print i
exit
}
}
}
' data.csv)
sum=0
for x in `cut -f $v -d ';' data.csv`
do
x="${x/$'\r'/}"
let sum=$sum+$x
done
if [ $pos -eq 0 ]
then
v0=$sum
elif [ $pos -eq 1 ]
then
v1=$sum
elif [ $pos -eq 2 ]
then
v2=$sum
elif [ $pos -eq 3 ]
then
v3=$sum
fi
}
while [ "$#" -gt 0 ]; do
pos=$1
typevar=$2
stringvar=$3
case $pos in
0) v0=$3 ;;
1) v1=$3 ;;
2) v2=$3 ;;
3) v3=$3 ;;
*) echo "One of the values has invalid position entered, try again"
esac
case $typevar in
1) if [ $pos -eq 0 ]
then
if [ "$stringvar" != "null" ]
then
v0=$stringvar
else
v0=""
fi
elif [ $pos -eq 1 ]
then
if [ "$stringvar" != "null" ]
then
v1=$stringvar
else
v1=""
fi
elif [ $pos -eq 2 ]
then
if [ "$stringvar" != "null" ]
then
v2=$stringvar
else
v2=""
fi
elif [ $pos -eq 3 ]
then
if [ "$stringvar" != "null" ]
then
v3=$stringvar
else
v3=""
fi
fi ;;
2) if [ $pos -eq 0 ]
then
v0=`eval $3`
elif [ $pos -eq 1 ]
then
v1=`eval $3`
elif [ $pos -eq 2 ]
then
v2=`eval $3`
elif [ $pos -eq 3 ]
then
v3=`eval $3`
fi ;;
3) updatedata $3 ;;
*) echo "Invalid type of variable, try again"
esac
shift
shift
shift
done
export PS1="[$v0][$v1][$v2][$v3]$"