再会!
我正在创建一个 Shell 脚本,以便可以使用它来执行 X(不会告诉)
这是我现在的脚本
clear
echo Ahmad A Kazi
echo IDNO: BD_3456
echo
echo Data Clear Program
echo c 2015 Ahmad A Kazi
echo
echo First Update
echo
apt-get update
echo
echo Purge Programs
echo
apt-get purge cmake -y
apt-get purge libtool -y
apt-get purge libcurl4-openssl-dev -y
apt-get purge libjansson-dev -y
这只是脚本的一部分,因为其余部分是专有的
我希望它位于脚本输出的顶部,而不是一直改变它的位置,下面的这段文字应该始终位于顶部
===========================================
Ahmad A Kazi
Copyright 2015, The DNACoin Developers
===========================================
例如
===========================================
Ahmad A Kazi
Copyright 2015, The DNACoin Developers
===========================================
Some thing else is going on......
这个其他的东西不应该最终删除我的名字和版权,还有,如何打印时间并继续自我更新......
请帮忙!
谢谢
答案1
这是我的脚本。它使用 tput cup Y 位置 X 位置,并使用 while 循环将该信息连续放置在屏幕顶部。您可能想根据自己的应用程序进行调整,但要点很明确。现在给我 3.50 美元,因为这个脚本受版权保护;)
#!/bin/sh
clear
while true; do
clear
tput cup 0 0
printf "===========\n SERG KOLO \n================Copyright 2015\n=================="
sleep 1
tput cup 10 10
echo TEST line one of script
echo "Do you love Ubuntu ? "
read answer
case $answer in
y) echo " Have a cookie :3 ";;
n) echo " Go away, Windows lover ";;
*) echo only y or n ;;
esac
sleep 1
df -h
sleep 1
free -h
sleep 1
done
答案2
#!/bin/bash
# Create a function just for this script.
mydashes='===================='
function mycls() {
clear
echo $mydashes
echo Ahmad A Kazi
echo Copyright 2015
echo $mydashes
}
mycls
echo Doing stuff
sleep 2
mycls
echo Doing more stuff
sleep 2
mycls
echo Almost done.
sleep 2
echo Done
还有其他方法,比如使用 ANSI 代码,但很快就会变得非常混乱。这种方法简单快捷。
答案3
如果命令输出不是很重要,您可以用所有&> /dev/null
输出都重定向到 来结束所有命令/dev/null
。
echo -ne " Purge Programs\r"
为了始终重复使用同一行,您需要向用户显示的所有信息应该\r
使光标返回到第一列。
clear
echo Ahmad A Kazi
echo IDNO: BD_3456
echo
echo Data Clear Program
echo c 2015 Ahmad A Kazi
echo
echo -ne "First Update\r"
apt-get update &>/dev/null
echo -ne "Purge Programs\r"
apt-get -y purge cmake libtool libcurl4-openssl-dev libjansson-dev &>/dev/null