Shuf 命令的管道输出

Shuf 命令的管道输出

对 Linux 相当陌生。我有一个由 Raspberry Pi 运行的数码时钟。我想经常向其发送六位数字的随机序列,以帮助延长数码管的使用寿命。

我在 GitHub 上找到了一个 CLITool 程序,它可以让我使用命令显示任意六位数字CLITool xxxxxx,其中 x 是 0-9 的任意数字。所以我尝试使用以下行创建一个 bash 文件 shuf -zer -n6 {0..9}|CLITool

shuf命令生成一个随机的六位数字字符串,但它似乎没有通过管道传输到 CLITool。就像我提到的,对于 Linux 来说相当新,所以它可能是我缺少的一些基本东西。

答案1

您想使用命令替换。

 CLITool $(expr 1+2)

将首先expr使用参数 运行程序1+2。这将输出3.然后外壳就会运行CLITool 3

我会使用 awk 来获取数字,例如

 CLItool $(awk 'BEGIN{srand();printf("%06d\n",rand()*1000000)}')

获取 0 到 1,000,000-1 之间带前导 0 的 6 位随机数。

答案2

听起来您的 CLI 工具根本不读取来自 stdin 的输入。只有可以读取输入流的工具才能通过管道传输。因此只需使用命令替换即可:

CLItool $(shuf -zer -n6 {0..9})

相关内容