【发布时间】:2025-09-06 22:05:01
【问题描述】:
我想编写一个脚本:
- 在标准输入上读取文本流
- 在 stderr 上每隔 10 行打印一次
- 在标准输出上打印随机*行
我试过了
#!/bin/bash
count=0
while IFS= read -r line; do
awk '{if(NR%3==0) print $line}' >&2
awk '{if(( RANDOM % 2 )) print $line}' >&1
done
但是,RANDOM 不起作用。 这里有什么问题?如何解决这个问题?
【问题讨论】:
-
应该是 ${RANDOM}
-
@yakoudbz
${RANDOM}不工作。 -
RANDOM 环境变量是 bash 功能,它本身在 awk 中没有意义。你可以使用双引号或类似的东西来扩展变量,但它看起来像awk has its own random number generation,你应该使用它