我想制作一个简短的脚本,仅用于实验目的。例如,我运行一个命令,如

sudo apt-get install eclipse --yes

而不是在安装时显示命令的详细信息,而是显示一个加载栏,如
......
(点只是在加载时弹出或其他东西)

我尝试做类似的事情
apt=sudo apt-get install vlc --yes

start()
{
    $apt
    while $apt;
    do
        echo -n "."
        sleep 0.5
    done
}
start

(我打算做的是运行 $apt 变量,然后让它移动到 while 循环,while 循环将确定命令是否正在运行,因此在命令运行时,它将用点替换冗长)

最佳答案

这是上面那些的一个小变化......

spinner()
{
    local pid=$!
    local delay=0.75
    local spinstr='...'
    echo "Loading "
    while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
        local temp=${spinstr#?}
        printf "%s  " "$spinstr"
        local spinstr=$temp${spinstr%"$temp"}
        sleep $delay
        printf "\b\b\b"
    done
    printf "    \b\b\b\b"
}
用法:
(a_long_running_task) &
spinner
这会打印出

当然在同一条线上。

关于Linux Shell,在后台运行命令时显示一些内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17460737/

10-16 02:25