Arrays 将数组索引循环到屏幕会话中

Arrays 将数组索引循环到屏幕会话中,arrays,bash,gnu-screen,Arrays,Bash,Gnu Screen,上面的脚本只打印出其中一行的第1行 #!/bin/bash IFS=$'\n' fortune_lines=($(fortune | fold -w 30)) Screen_Session=$"{mainscreen}" Screen_OneLiner=$(screen -p 0 -S ${Screen_Session} -X stuff "`printf "say ${fortune_lines[@]}\r"`") for var in "${Screen_OneLiner[@]}"

上面的脚本只打印出其中一行的第1行

#!/bin/bash

IFS=$'\n'
fortune_lines=($(fortune | fold -w 30))
Screen_Session=$"{mainscreen}"
Screen_OneLiner=$(screen -p 0 -S ${Screen_Session} -X stuff "`printf "say   ${fortune_lines[@]}\r"`")

for var in "${Screen_OneLiner[@]}"
  do
    echo -e "${var}"
done
与其循环浏览整个“财富线”索引,还不如不知道如何让它起作用。 有什么想法吗

供参考 我只使用

IFS=$'\n'
fortune_lines=($(fortune | fold -w 30))
要对此脚本进行故障排除

echo -e

对我来说效果很好,我将IFS改为\r,它输出/etc/passwd,其中\n它只打印了第一行

它仍然只输出第一行。当我将第4行更改为fortune_line=($(fortune | fold-w30))
#!/bin/bash
#OLDIFS=$IFS
IFS=$'\r'
    fortune_lines=($(cat /etc/passwd | fold -w 30))
    #Screen_Session=$"{mainscreen}"
        Screen_Session=`screen -ls|grep "\."|grep "("|awk '{print $1}'`
    Screen_OneLiner=$(screen -p 0 -S ${Screen_Session} -X stuff "`printf "say   ${fortune_lines[@]}\r"`")
#IFS=$OLDIFS;
    for var in "${Screen_OneLiner[@]}"
      do
        echo -e "${var}"
    done