在终端上显示时间的 Bash 脚本

在终端上显示时间的 Bash 脚本

我想编写一个 bash 脚本,用作问候语并显示日期和时间(在终端中),但遇到了一些问题。我做了一些研究,解决了大部分问题。唯一剩下的问题是,当我运行脚本时,它不会刷新终端中的现有文本,而是将新文本附加到前一个文本之后。

这是包含代码和问题的屏幕截图。在此处输入图片描述

__RAINBOWPALETTE="1"

function __colortext()
{
  echo -e " \e[$__RAINBOWPALETTE;$2m$1\e[0m"
}

 
function echogreen() 
{
  echo -n $(__colortext "$1" "32")
}

function echored() 
{
  echo -n $(__colortext "$1" "31")
}

function echoblue() 
{
  echo -n $(__colortext "$1" "34")
}

function echopurple() 
{
  echo -n $(__colortext "$1" "35")
}

function echoyellow() 
{
  echo -n $(__colortext "$1" "33")
}

function echocyan()
{
  echo -n $(__colortext "$1" "36")
}
printf "\n"
echoblue "Today is: "
echored `date +%a` && echo -n " "
echogreen `date +%d` && echo -n " "
echoyellow `date +%b`
echo " `date +%Y`"


while sleep 1; do
    echoblue "It's "
    echopurple `date +%r`\\c
done

printf "\n\n"

答案1

试试这个;\r在之前添加It's

while sleep 1; do
    echoblue "\rIt's "
    echopurple `date +%r`\\c
done

相关内容