
echo foo | wall
うまくいきますが、うまくいかないのはなぜですかcat | wall
?後者の場合、理論的には壁にパイプで接続する必要があるいくつかの行をcatに入力しましたが、何も起こりません。
答え1
wall
入力の各行は別々のメッセージとして送信されません。Broadcast Message from ...
各行に対して、個別のヘッダーではなく単一のヘッダーをメッセージの前に送信できるように、入力全体を収集します。
入力を一度に1行ずつ処理するには、次の間にcat
ループを挿入しますwall
。
cat |while read -r line; do wall <<<"$line"; done