gpt4 book ai didi

bash - 将命令输出拆分为行数组

转载 作者:行者123 更新时间:2023-11-29 09:23:18 29 4
gpt4 key购买 nike

这是我的 bash 函数,用于获取命令的输出作为参数,然后返回一个输出行数组。

function get_lines { 
while read -r line; do
echo $line
done <<< $1
}

SESSIONS=`loginctl list-sessions`
get_lines "$SESSIONS"

loginctl list-sessions 的实际输出是:

   SESSION        UID USER             SEAT            
c2 1000 asif seat0
c7 1002 sadia seat0

但是 while 循环只运行一次,在一行中打印所有输出。如何获取行数组并将其返回?

最佳答案

您可以使用 readarray 并避免使用 get_lines 函数:

readarray SESSIONS < <(loginctl --no-legend list-sessions)

这将创建数组 SESSIONS,命令输出的每一行都映射到数组的一个元素。

关于bash - 将命令输出拆分为行数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427432/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com