我正在制作一个脚本,最终通过使用 再次执行自身来重新开始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 中放置一个临时文件,在启动时检查它是否存在。如果没有,你可以回显,如果存在,你之前已经运行过它。完成后删除该文件。