bash命令变量创建

bash命令变量创建

我创建了这个命令,并希望将其放入变量中。

sort -k 1,1 | tr " " "\n" | users | wc -l

然而,如下所示,到目前为止,输出会产生错误并且无法正常工作

us_num=$(users | tr " " "\n" | sort -k 1,1 | wc -l)
echo "Currently there is $(us_num) number of users on the server."

有任何想法吗?

答案1

$(us_num)是一个命令替换,它将运行该命令us_num并将被该命令的输出替换。

要插入的值多变的 us_num$us_num改为使用:

printf 'There are currently %d number of users on the server\n' "$us_num"

另请注意,您提到的第一个管道的命令位置乱序。该users命令将忽略来自 的输入tr,并sort等待来自终端的输入。

wc -w正如评论中提到的,您还可以通过使用(计算单词数)来缩短管道:

printf 'There are currently %d number of users on the server\n' "$(users|wc -w)"

相关内容