我有一个脚本,dinamically生成另一个bash脚本。在这个heredoc脚本有一个无限循环显示计数器(这工作!):Bash。无限循环显示一个计数器和更多信息
date1=`date +%s`
while true; do
echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
done
如果你只把这个循环工作正常。问题是我不仅需要展示柜台。需要更多信息(一些静态数据)。我会把我不工作代码:
#!/bin/bash
dir="/tmp/"
my_file="generatedscript.sh"
rm -rf "$dir$my_file" > /dev/null 2>&1
exec 3>"$dir$my_file"
cat >&3 <<-'EOF'
#!/bin/bash
date1=`date +%s`
while true; do
echo -ne "Info\n" # this is the damned line, if you remove it the counter works fine
echo -ne "Time counter: $(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
done
EOF
exec 3>&-
xterm -hold -geometry 78x25+0+0 -T "Testing" -e "bash \"$dir$my_file\"" > /dev/null 2>&1 &
这说明有很多线和信息线xterm窗口重叠与其他线路的“时间”二字。我想单独显示信息线,从时间计数器行和计数器运行...并且只有一次!
如果你删除行echo -ne“Info \ n”计数器显示正常,运行并且只有一次...如何可以将另一个不同的行(回声与信息)在此之上并且作为固定行重复?有可能吗?任何想法如何达到这一点?谢谢。
不确定为什么你在这里弄乱文件描述符3; 'cat>“$ dir/$ my_file”<<'EOF'...'要简单得多。 – chepner
'echo -ne“INFO \ n”'和'echo INFO'没有区别。 – chepner
是的,是一样的......那是因为我在尝试不同的事情......失败。并且需要cat>“$ dir/$ my_file”<<'EOF'来从该脚本生成单独的脚本。需要......也许与帖子的目标无关......无论如何,你知道如何处理这个问题吗?谢谢您的回答。 – OscarAkaElvis