Bash

執行腳本時忽略前 x 行?

  • November 4, 2015

我正在製作一個腳本,該腳本最終通過使用exec. 問題是前幾行只應該在您每次啟動腳本時執行,所以我想知道是否有什麼辦法可以解決這個問題。這是一個例子:

echo "welcome"
read yesno

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

exec ~/bin/script

這是簡化的,但這是我的腳本,我想忽略第一行,(echo)。exec我可以添加一些選項嗎?我的意思是我可以複製腳本並省略第一行,但這感覺像是一個糟糕的解決方案。

使用變數,顯而易見的做法是傳入上一個提示的結果:

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

您可以嘗試在 /run 中放置一個臨時文件,在啟動時檢查它是否存在。如果沒有,你可以回顯,如果它存在,你之前執行過。當您完成刪除該文件時。

引用自:https://unix.stackexchange.com/questions/240621