#!/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”的整个索引不确定如何使这项工作。 有什么想法吗?
FYI 我只使用
echo -e
对此脚本进行问题排查。
答案 0 :(得分: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 \ n并将其输出/ etc / passwd,其中\ n仅打印第1行