2012-10-31 44 views
0
#!/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 

以上腳本只打印出1號線的循環數組索引到一個屏幕會話

IFS=$'\n' 
fortune_lines=($(fortune | fold -w 30)) 

而是通過「fortune_lines」不知道如何使這項工作在整個索引循環的一個。 任何想法?

僅供參考 我只使用

echo -e 

來解決此腳本。

回答

0
#!/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 

工作正常,我,我改變IFS爲\ r和它抽出的/ etc/passwd其中與\ n只印1號線

+0

它仍然只是泵出的第一道防線。當我把第4行改成fortune_lines =($(fold -w-30))時 – user1787331