2

下面的代码没有像我预期的那样工作。我可能是因为我做错了,但我认为这可能是一个引用问题。

    #!/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 "${var}"
    done

我认为我没有正确引用某些内容,因为当我尝试执行此操作时。我明白了。。

    line 5: mainscreen: command not found
    [screen is terminating

本质上,我正在尝试添加此功能(有效)

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

到这个屏幕一个班轮

   screen -p 0 -S ${Screen_Session} -X stuff "`printf "say   ${fortune_lines[@]}\r"`"

然后让它循环数组

    for var in "${ArrayName[@]}"
   do
      echo "${var}"

   done

所以我不确定我离我想做的事情有多远(在代码中)。任何帮助都会很棒。

4

2 回答 2

0

这条线有问题

Screen_Session=$(mainscreen)

您在此处使用命令替换,因此如果mainscreen不是有效命令,您将收到command not found错误消息。

也许您的意思是使用大括号而不是括号?

于 2012-10-31T03:47:39.223 回答
0

由于将评论标记为答案的功能请求仍然被拒绝,因此我在此处复制上述解决方案。

我设法让它工作...... gist.github.com/4006586 – user1787331

于 2013-09-18T10:57:03.490 回答