我有一个脚本生成另一个bash脚本。在这个heredoc脚本中有一个无限循环显示一个计数器(这有效!):
newOrder <- c(2,1,3,4)
exchangeNestedDF <- function(ListOfListsOfDF, newOrder){
NewList <- lapply(ListOfListsOfDF, function(x) x[newOrder])
names(NewList) <- names(ListOfListsOfDF)
return(NewList)
}
list2_NeW <- exchangeNestedDF(list2, newOrder)
如果只放这个,这个循环工作正常。问题是我不仅需要显示计数器。需要更多信息(一些静态数据)。我将把我的NOT工作代码:
NewOrders <- list(c(2,1,3,4), c(2,3,1,4), c(2,3,4,1))
LIST <- lapply(1:3, function(i) exchangeNestedDF(get(paste0("list", i)), NewOrders[[i]]))
这表示xterm窗口有很多行,Info行与其他行的“Time”字重叠。我想在时间计数器行和计数器运行中分别显示信息行......只有一次!
如果删除行echo -ne“Info \ n”计数器显示正常,只运行一次...如何在此上方放置另一条不同的行(带有信息的回显)并作为固定行而不重复?有可能吗?任何想法如何达到这个?谢谢。
答案 0 :(得分:0)
只需将INFO线移出循环即可。我通常喜欢把回车放在线的起点。 -n
或-e
都不是可移植的,因此除printf
的最简单用法外,我通常更喜欢echo
。
dir="/tmp/"
my_file="generatedscript.sh"
script="$tmp/$my_file"
cat > "$script" <<'EOF'
echo INFO
date1=$(date +%s)
while true; do
now=$(date +%s)
delta=$((now - date1))
printf '\rTime counter: %s' "$(date -u --date "$delta" +%H:%M:%S)"
done
EOF
chmod +x 500 "$tmp/$my_file"
xterm -hold -geometry 78x25+0+0 -T "Testing" -e "$script" > /dev/null