Arrays 将数组索引循环到屏幕会话中
上面的脚本只打印出其中一行的第1行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[@]}"
#!/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