我想制作一个简短的脚本,仅用于实验目的。例如,我运行一个命令,如
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/