我需要在shell脚本中创建一个堆栈,以便将值推送到循环中进行处理。第一个要求是必须以便携方式实现,因为我想将脚本用作便携式安装程序(至少在类Unix操作系统之间)。第二个要求是它需要能够在循环内进行更改,因为在循环处理条目时会以递归方式显示新信息。第三个要求是每条信息有多行信息(这主要是一个固定的数字,如果不是,可以根据第一行信息计算)。如何在shell脚本中创建堆栈?
我尝试使用堆栈文件:
#!/bin/sh
echo "First entry" > stack.txt
echo "More info for the first entry" >> stack.txt
echo "Even more info for the first entry" >> stack.txt
while read ENTRY < stack.txt; do
INFO2=`tail -n +2 stack.txt | head -n 1`
INFO3=`tail -n +3 stack.txt | head -n 1`
tail -n "+4" stack.txt > stack2.txt
# Process the entry...
# When we have to push something:
echo "New entry" > stack.txt
echo "Info 2" >> stack.txt
echo "Info 3" >> stack.txt
# Finally, rebuild stack
cat stack2.txt >> stack.txt
done
这完美的作品,但感觉不对。有没有一个“黑客”的方式来做到这一点?
在此先感谢您的帮助!
要将文件的打印线2,它是非常清洁的使用'sed的-n 2p'而不是管道尾部头。 –