对于作业,我必须在bash中编写具有以下行为的脚本:
关机发生在以下情况: -stdin关闭 -脚本接收INT或TERM信号
我想到了:
echo "#!/bin/bash
buffer=""
while read line
do
buffer="${buffer}line"
done < "${1:-/dev/stdin}"" >>pipe-barrier.sh
独自出门。我如何实现其余的目标? 预先感谢。
答案 0 :(得分:0)
你的意思是那样的吗?
#!/bin/bash
trap flush_buffer EXIT TERM INT
flush_buffer() {
[ -n "$buffer" ] && echo -e "$buffer"
buffer=""
}
while read -r line; do
[ -z "$buffer" ] && buffer="$line" || buffer="$buffer\n$line"
done
脚本对Ctrl-D,Ctrl-C和SIGUSR1做出反应