執行腳本時忽略前 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 中放置一個臨時文件,在啟動時檢查它是否存在。如果沒有,你可以回顯,如果存在,你之前已經運行過它。完成後刪除該檔案。

相關內容