2

これで髪を抜いてきました。私はbashスクリプトを作成し、Linuxの大学のクラスを受講するのは初めてです。これは割り当ての要件ではなく、自己啓発の要件です。

ユーザー入力を取得したり、他のことをしたりしながら、コンソールでストップウォッチを実行しようとしています(秒が刻々と表示されます)。

私はこの質問を何時間も研究してきました。間違ったクエリで検索しているだけだと思います。

私は絞首刑執行人ゲームを作成しました(男が絞首刑になる前に単語の文字を推測します)。

それは素晴らしい学習体験でした。さて、どれくらいの時間が経過したかを示す時計が欲しいです。

関連するチュートリアルへのアドバイスやリンクをいただければ幸いです。

これまでの私のテストコードは機能しませんが、タイマーの無限ループを実行します。

#!/bin/bash
# timer.sh

timer ()
{
    while true
    do
    tput cup 0 0
    echo $SECONDS
    wait 1
    done
}

display ()
{
    tput cup 5 0
    echo -n "This is output from other stuff"
    read -n1 letter
    #while read -n1 letter
    #do
    tput cup 7 0

    echo -n "type any letter"
    tput cup 9 0
    echo -n "You letter is: $letter"
    if [[ "$letter" == "x" ]]
    then
        exit
    fi
    #done
}

finished ()
{
    tput clear
    echo -n "This is the end of the program"
    kill $timer_pid 
    exit
}

# Main Body

trap finished SIGINT SIGTERM
tput clear
while true
do
    timer &
    timer_pid=$!
    display 
done

exit
4

3 に答える 3

2

に変更wait 1してみてくださいsleep 1

于 2012-05-02T11:14:16.897 に答える
0

あなたはシェルスクリプトに精通しているので、私は基本的なロジックを提供しています。さらに、ドキュメントをコーディング/読むほど、より多くのことを学ぶことができるので、実装を提供しません。

Seconds=1
while true
do
    PrintWatch Seconds ## tput is an excellent option
    Seconds+=1
    Input=GetInputFromUserBlockFor_N_Seconds ## help read
    if Input == Stop
    then
        break
    fi
done
于 2012-05-02T07:30:04.983 に答える
0
#!/bin/bash
#
# display time at line begin.
#
tick () {
  t=$(date +%T)
  echo -en "\r$t > " 
  sleep 10
  tick
}
tick 

これを。を使用してスクリプトとして呼び出すと./tick.sh &、常に行の先頭に時刻が出力されますが、入力が妨げられます。

時間をプロンプトに統合することもできますが(man:bash / PROMPTINGを参照)、時間を実現することはできません。コマンドを挿入するたびに新しい時間を表示するだけです。

于 2012-05-02T08:34:17.447 に答える