0
嘗試執行陷阱 - 休眠循環時遇到了一個奇怪的問題(可能是平臺特定的問題)。bash中的信號陷阱只能在RHEL7中運行一次(但不在Ubuntu中)
具體而言,下面的代碼:
saysomething() {
trap saysomething 37
echo "Hello there"
while true; do
sleep 1
done
}
echo "Current pid: $$"
saysomething
打印「你好」每次我發送它從在Ubuntu 14.04使用kill -37 <pid>
另一殼的信號。
但是,在RHEL 7機器上,上述僅在第一次打印Hello there
。之後,腳本繼續執行,但無法響應更多信號。
這種差異的原因是什麼?
對不起!讀得太快。那麼也許你可以從功能之外做到這一點。 –
你是否在兩臺機器上使用相同版本的'bash'? – chepner
不,看起來像'bash'版本是不同的。 Ubuntu上的4.3.11和RHEL 7上的4.2.46會導致這種行爲上的明顯差異嗎? – balajeerc