linux 条件成立后,删除上一行并替换为其他行

bvk5enib  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(104)

请仔细阅读下面的代码并澄清。

read -p "Enter the ip address: " ip
echo -e "\e[5mpinging...\e[25m"

ping -c 1 $ip &> /dev/null>1
        if [ $? -eq 0 ]
        then
        echo -e "\e[1;93m$ip\e[1;39m is reachable"
        else
        echo -e "\e[1;91m$ip\e[1;39m is not reachable"
        fi

字符串
当上面的代码执行时,我需要程序等待3秒,然后说“IP_ADDR is reachable”,我还需要在执行时将文本“pinging...”替换为“completed”。
电流输出:when the above script is executed
所需输出:should replace the word "pinging..." with "completed"

iqih9akk

iqih9akk1#

我建议使用\r转义序列,这意味着光标返回到行的第一个字符。
所以这将覆盖pinging...,它不会出现。
这是如何看待这个策略的脚本。

#!/bin/bash
read -p "Enter the ip address: " ip
echo -ne "\e[5mpinging...\e[25m\r" # Note here \r
sleep 1
ping -c 1 $ip &> /dev/null>1
if [ $? -eq 0 ]
then
  echo -e "\e[1;93m$ip\e[1;39m is reachable"
else
  echo -e "\e[1;91m$ip\e[1;39m is not reachable"
fi

字符串
希望对大家有帮助。

相关问题