Shell脚本中每个命令执行的延迟

时间:2018-07-21 20:16:21

标签: linux shell

我是这里的新手,所以请原谅我的无知。我只想问问是否有一种方法可以在Shell脚本中为每个命令执行延迟。

这是我当前的设置

command1
sleep 1
command2
sleep 1
.....
.....
command1000
sleep 1

有没有一种方法可以在每个命令执行后仅放置1个睡眠命令(延迟1秒)。预先谢谢你!

Br, 标记

2 个答案:

答案 0 :(得分:2)

在Bash(但不是其他Shell)中,您可以使用调试陷阱来做到这一点:

#!/bin/bash
trap 'sleep 1' DEBUG
for word in The GNU General Public License is a free, copyleft license
do
  printf '%s ' "$word"
done

这里是help trap

trap: trap [-lp] [[arg] signal_spec ...]
     

捕获信号和其他事件。

     

如果SIGNAL_SPEC是DEBUG,则在每个简单命令之前执行ARG。

答案 1 :(得分:0)

脚本:

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox, QAction, qApp, QMenu, QTextEdit, QToolBar, QMdiArea, QGridLayout, QLabel, QDialog
from PyQt5.QtGui import QFont, QIcon, QPainter, QVector2D
from PyQt5.Qt import QDesktopWidget, QMainWindow, Qt, QHBoxLayout, QVBoxLayout,\
    QLineEdit
from PyQt5.QtCore import QPoint


class Example(QDialog):
    count = 0
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)            
        self.initUI()


    def initUI(self):
        grid = QGridLayout()
        a1 = QLabel('alphanumeric characters')
        a2 = QLabel('alphanumeric characters')

        grid.addWidget(QLabel('Name'), 1, 0)
        grid.addWidget(QLineEdit(), 1, 1)
        grid.addWidget(QLabel('only alphanumeric'), 1, 2)
        grid.addWidget(QLabel('Street1'), 2, 0)
        grid.addWidget(QLineEdit(), 2, 1)
        grid.addWidget(QLabel('only alphanumeric'), 2, 2)
        grid.addWidget(QLabel('Street2'), 3, 0)
        grid.addWidget(QLineEdit(), 3, 1)
        grid.addWidget(QLabel('only alphanumeric'), 3, 2)
        grid.addWidget(QLabel('City'), 3, 0)
        grid.addWidget(QLineEdit(), 3, 1)
        grid.addWidget(QLabel('only alphanumeric'), 3, 2)

        self.setLayout(grid)
        self.setGeometry(500, 500, 500, 500)
        self.setWindowTitle('Lines')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
#     ex.show()
    sys.exit(app.exec_())

您必须用命令和参数替换 int value= 0; if (int.TryParse(textBox1.Text, out value)) { if (value>= 120) MessageBox.Show("Dot Net Perls is awesome.", "Important Message"); }

说明:
我已经在字符串(第一行)中声明了一个命令数组,然后遍历该数组并评估了每个字符串(declare -a cmd_list=("echo how" "echo are" "echo you") for cmd in "${cmd_list[@]}" do eval "$cmd" sleep 1 done )。从数组发出命令后,将执行echo <param>命令。