特定のファイルにすべて保存されたgitリポジトリをバックアップするシェルスクリプトがあります。私はただ楽しさのために素晴らしい「回転ロードデバイス」を追加したかったのですが、かなり簡単です。問題は、ロード中に端末に入力を続けることができ、さらにコマンドを入力できることに気づいたことです。内でバックアップスクリプトを見つけることができます。GitHubページはこちらまたは、以下のコードがほとんどです。
function runCommand() {
load &
local whilePID=$!
tar -czf ${zipFileToUpdate} ${directoryToBackUp} &
local backupPID=$!
wait $backupPID
kill $whilePID
echo -ne "done"
}
function load() {
while true; do
echo -ne "/\r"
sleep .1
echo -ne "-\r"
sleep .1
echo -ne "\ \r"
sleep .1
echo -ne "|\r"
sleep .1
done
}
stty -echo # stop input
tput civis # cursor invisible
runCommand # main func
tput cnorm # cursor norm
stty echo # resume input
ロードループの実行中に入力を続けることができる問題から始めて停止しましstty -echo
たが、入力を再びオンにするとすぐに表示されます。したがって、上矢印を押してEnterを押すと、完了するまで待ってから再実行するスクリプトが表示されます。入力を隠すのではなく、キャプチャする方法を知っている人がいればいいでしょう!
私はbashを初めて使用するので、コマンドまたはコマンドの一部であるパラメータを説明できると思います。事前にありがとう