Linux Shell,在后台运行命令时显示内容

xR3*_*3Rx 4 linux bash shell

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

sudo apt-get install eclipse --yes
Run Code Online (Sandbox Code Playgroud)

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

我试过做类似的事情

apt=sudo apt-get install vlc --yes

start()
{
    $apt
    while $apt;
    do
        echo -n "."
        sleep 0.5
    done
}
start
Run Code Online (Sandbox Code Playgroud)

(我打算做的是运行$ apt变量,然后让它继续运行到while循环,while循环将确定命令是否正在运行,所以当命令运行时它将用点替换verbose)

Bar*_*mar 7

apt-get install vlc --yes >/tmp/apt-get.log & # Run in background, with output redirected
pid=$! # Get PID of background command
while kill -0 $pid  # Signal 0 just tests whether the process exists
do
  echo -n "."
  sleep 0.5
done
Run Code Online (Sandbox Code Playgroud)

将上面的内容放在脚本中并通过它运行sudo.您不能kill用来测试sudo进程本身,因为您无法向具有不同uid的进程发送信号.