按键或组合时如何停止bash程序(循环)?

时间:2018-03-08 16:26:54

标签: bash loops signals

我有一个while循环,我想在用户按下字母时停止它" s"在键盘上。

我应该通过"陷阱"来管理问题。并使用相对信号,默认情况下块与组合" ctrl + c",但我应该通过按" s"来获得相同的效果。

(我不必使用命令读取)

放置命令的位置?

你可以解释一下吗?

谢谢

代码:

!/bin/bash

while true

do

echo text text text text

done

2 个答案:

答案 0 :(得分:0)

遵循Aserre所说的内容:

<?php
    $results = [
        ["group"=> 1,"name"=> "John"],
        ["group"=> 1,"name"=> "Luke"],
        ["group"=> 1,"name"=> "Peter"],
        ["group"=> 2,"name"=> "Pia"]
    ];
    $newArr = array();
    foreach ($results as $key => $value) {
        $newArr[$value["group"]][] = $value["name"];
    }
?>
<table border="1">
    <thead>
      <tr><th>GROUP</th><th>NAME</th></tr>
    </thead>
    <tbody>
    <?php foreach($newArr as $group=>$values){ ?>
        <tr>
            <td><?php echo $group;?></td>
            <td>
                <ul style="margin: 5px;">
                <?php 
                    foreach($values as $key=>$name){
                        echo "<li>$name</li>";
                    }
                ?>
                </ul>
            </td>
        </tr>
    <?php } ?>
    </tbody>
</table>

答案 1 :(得分:0)

我不知道为什么你不想使用read,因为它会像

一样简单
#! /bin/bash

while :
do
    echo "text text text"
    read -t 0.3 -n 1 k
    [[ "$k" == 's' ]] && break
done