スクリプトを実行するときに最初の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

おすすめ記事