繁体   English   中英

Bash数组作为屏幕内部的参数

[英]Bash array as argument inside of screen

以下代码无法正常运行。 我可能是因为我做错了所有事情,但我认为这可能是一个报价问题。

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

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

这条线有问题

Screen_Session=$(mainscreen)

您在此处使用命令替换,因此,如果mainscreen不是有效命令,则会出现command not found错误。

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

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

我设法使它起作用... gist.github.com/4006586 – user1787331

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM