我想阅读命令输出的第一行。但我收到一条空消息。
我用了
ls | read line
echo $line #nothing displayed
为什么行变量为空以及如何解决?
以下代码有效。但我只想阅读第一行
ls | while read line; do
echo $line
done
如果 read 无法实现,是否可以使用 grep、awk、sed 等其他功能来实现?
确实读取了第一read
行,但它正在子shell中执行。但你可以这样做:
ls | { read line;
echo $line;
# other commands using $line;
}
# After the braces, $line is whatever it was before the braces.
You can use
read line <<< "$(ls)"
printf "%s\n" "$line"
But as already mentioned, please, PLEASE, PLEASE do not parse ls
output!