whileループでネストされた変数をテストする

whileループでネストされた変数をテストする

whileループ条件でネストされた変数を挿入しようとしていますが、正しく拡張できません。

print_message() {
    timer=0
    timer_condition="$2"

    while [[ $timer_condition ]]; do
        sleep 1
        timer=$((timer+1))
    done
    echo "$1"
}

print_message 'Hello world, 5 seconds passed...' '$timer != "5"'
print_message 'Hello again, another 10 seconds passed...' '$timer != "10"'

たとえば、私は2つのパラメータを受け取る単純な関数print_messageを作成しました。 $ 1は印刷するメッセージで、$ 2はメッセージを表示するために関数に異なる条件を提供できるようにwhileループでテストする条件です。ただし、whileループはコンテンツではなく、$timer_condition自体がtrueかどうかをテストします。このように動作させる方法はありますか?

while [[ $timer != "5" ]]; do

ありがとう

ベストアンサー1

目的のタスクを実行する1つの方法は次のとおりです。

print_message() {
    timer=0
    timer_condition="$2"

    while (( $timer_condition ))
    do
        sleep 1
        (( timer += 1 ))
    done
    echo "$1"
}

print_message 'Hello world, 5 seconds passed...' 'timer != 5'
print_message 'Hello again, another 10 seconds passed...' 'timer != 10'

~

おすすめ記事