使用Wall广播用户消息

时间:2014-05-05 17:54:55

标签: linux bash shell

所以我想让用户输入一个特定的消息,方法是粘贴它或者使用墙自己键入,然后使用墙,将其广播给所有用户。我的想法是,我不希望只有一行消息,而是允许在不使用文本文件的情况下获得他们想要的大消息。

我想出了这个:

...
elif [ $var -eq 3 ]

        echo "Enter your broadcast message (When done, wait 2 seconds):"
        broadcastThis= read -d '' -n 1 message

        while broadcastThis=`read -d '' -n 1 -t 2 c`
        do
            message+=$c
        done

        wall <<< $message
fi

我收到错误说明以下内容:

  

脚本:第146行:警告:here-document在141行分隔   文件结束(想要`$ message')脚本:第147行:语法错误:   意外的文件结尾

我真的被困在这一点上,似乎有一个关于墙如何接受变量$ message的问题。

修改 我做了devnull建议的更改,但现在只播放用户输入的第一个字母。

1 个答案:

答案 0 :(得分:1)

<<表示here document

你正在寻找的是一个不法之处:

wall <<< "$message"

如果您需要此处的文档,则需要使用正确的语法:

wall << DELIMITER
"$message"
DELIMITER