执行脚本时忽略前 x 行?

执行脚本时忽略前 x 行?

我正在制作一个脚本,最终通过使用 再次执行自身来重新开始exec。问题是前几行只应该在您每次启动脚本时运行,所以我想知道是否可以做任何事情来解决这个问题。这是一个例子:

echo "welcome"
read yesno

if [[ $something = etc.. ]]; then
whatever
fi

exec ~/bin/script

这是简化的,但如果这是我的脚本,我想忽略第一行 ( echo)。我可以添加一些选项吗exec?我的意思是我可以复制脚本并省略第一行,但这感觉像是一个糟糕的解决方案。

答案1

对于变量,显而易见的事情就是传入上一个提示的结果:

if [[ -z "$yesno" ]]; then
    echo "welcome"
    read yesno
fi

if [[ $something = etc.. ]]; then
whatever
fi

# doing it this way makes it exported into the subprocess
yesno=$yesno exec ~/bin/script

答案2

您可以尝试在 /run 中放置一个临时文件,在启动时检查它是否存在。如果没有,你可以回显,如果存在,你之前已经运行过它。完成后删除该文件。

相关内容